2017-08-26 64 views
0

所以,我有一個XML文檔:如何將元素的值複製到xsl中的屬性?

<entries> 
    <entry> 
    <field>0</field> 
    </entry> 
    <entry> 
    <field>1</field> 
    </entry> 
    <entry> 
    <field>2</field> 
    </entry> 
    <entry> 
    <field>3</field> 
    </entry> 
</entries> 

我想transfor使用XSL這個文件到一個新的XML文檔。我創建的xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="//entries"> 
     <xsl:element name="entry"> 
      <xsl:attribute name="field"> 
       <xsl:copy-of select="/entries/entry/field"/> 
      </xsl:attribute> 
      <xsl:value-of select="text()"/> 
     </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 

我想獲得一個新的XML文件:

<entries> 
    <entry field="0"> 
    </entry> 
    <entry field="1"> 
    </entry> 
    <entry field="2"> 
    </entry> 
    <entry field="3"> 
    </entry> 
</entries> 

我無法理解的元素「場」副本的值中的元素屬性「進入」在一個新的XML文件

回答

0

試試這樣說:

<xsl:template match="/entries"> 
    <xsl:copy> 
     <xsl:for-each select="entry"> 
      <entry> 
       <xsl:attribute name="field"> 
        <xsl:value-of select="field"/> 
       </xsl:attribute> 
      </entry> 
     </xsl:for-each> 
    </xsl:copy> 
</xsl:template> 

或簡稱:

<xsl:template match="/entries"> 
    <xsl:copy> 
     <xsl:for-each select="entry"> 
      <entry field="{field}"/> 
     </xsl:for-each> 
    </xsl:copy> 
</xsl:template> 
相關問題