2016-08-15 37 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