2010-03-31 24 views
5

我試圖在基本內容被複制和修改的XML中創建元素。如何在使用模板進行復制時在XSLT中創建元素

我的XML是一樣的東西

<root> 
    <node> 
    <child>value</child> 
    <child2>value2</child2> 
    </node> 
    <node2>bla</node2> 
</root> 

節點的孩子的數量可能會改變,以及根的孩子。 XSLT應該複製整個內容,修改一些值添加一些新的。

的複製和修改是沒有問題:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
    <xsl:output method="xml" encoding="UTF-8"/> 
    <xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

(+進一步進行修改的模板)。

但是,如何在某個路徑上在此結構中添加新元素,例如我想添加一個元素作爲「節點」節點的最後一個元素。 「節點」元素本身始終存在。

回答

5
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
    <xsl:output method="xml" encoding="UTF-8"/> 
    <xsl:template match="@*|node()"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*|node()"/> 
    </xsl:copy> 
    </xsl:template> 
    <xsl:template match="node"> 
    <node> 
     <xsl:apply-templates select="@*|node()"/> 
     <newNode/> 
    </node> 
    </xsl:template> 
</xsl:stylesheet> 
+0

完美。謝謝。 – 2010-03-31 19:01:01

+0

使用此操作將子項添加到根元素不起作用。任何解決方案 – Buffalo 2012-05-17 11:55:32

相關問題