2016-08-15 1 views
0

Я использую saxonee-sql для подключения к базе данных. Как сделать выходной файл XML так:Как создать элемент с помощью <xsl: attribute> при использовании <sql:query>

<Partners> 
    <Partner type="Supplier"> 
      <PartnerName>name 1</PartnerName> 
      <PartnerDuns>duns 1</PartnerDuns> 
    </Partner> 
    <Partner type="Buyer"> 
      <PartnerName>name 2</PartnerName> 
      <PartnerDuns>dums 2</PartnerDuns> 
    </Partner> 
</Partners> 

И это XSLT:

<xsl:variable name="partner"> 
    <sql:query connection="$connection" table="Partner" column="PartnerDuns,PartnerName,type" row-tag="Partner" /> 
</xsl:variable> 
<Partners> 
    <xsl:copy-of select="$partner" /> 
</Partners> 

Текущий выход

<Partners> 
    <Partner> 
      <PartnerName>name 1</PartnerName> 
      <PartnerDuns>duns 1</PartnerDuns> 
      <type>Supplier</type> 
    </Partner> 
    <Partner> 
      <PartnerName>name 2</PartnerName> 
      <PartnerDuns>dums 2</PartnerDuns> 
      <type>Buyer</type> 
    </Partner> 
</Partners> 
+2

Пожалуйста, отредактируйте этот вопрос и покажите нам результат, полученный в настоящее время с ''. –

+0

Теперь я обновляю вопрос –

ответ

1

Я полагаю, вы можете просто преобразовать оригинал результат, например

<xsl:template match="Partner/*"> 
    <xsl:copy-of select="."/> 
</xsl:template> 

<xsl:template match="Partner/type"> 
    <xsl:attribute name="{name()}" select="."/> 
</xsl:template> 

<xsl:template match="Partner"> 
    <xsl:copy> 
    <xsl:apply-templates select="type, (* except type)"/> 
    </xsl:copy> 
</xsl:template> 

, а затем использовать

<xsl:variable name="partner"> 
    <sql:query connection="$connection" table="Partner" column="PartnerDuns,PartnerName,type" row-tag="Partner" /> 
</xsl:variable> 
<Partners> 
    <xsl:apply-templates select="$partner/*" /> 
</Partners> 

вместо copy-of.

Смежные вопросы