2012-03-16 54 views
0

我有一個複雜的結構,其中包含一個列表如下國稅發形式如何使用XSLT

complex tree here 
... 
<ns3:timestampList xmlns="myNameSpace"> 
      <timestampInfo> 
        <timestampID>START</timestampID> 
        <timestamp>2012-02-25T00:30:18.705+01:00</timestamp>       
      </timestampInfo> 
      <timestampInfo> 
        <timestampID>END</timestampID> 
        <timestamp>2012-02-25T00:30:23.675+01:00</timestamp> 
      </timestampInfo> 
      <timestampInfo> 
        <timestampID>RE_START</timestampID> 
        <timestamp>2012-02-25T00:30:18.705+01:00</timestamp> 
      </timestampInfo> 
</ns3:timestampList> 

一個節點添加到XML結構,我想留住整個try和只添加一種新的timestampinfo塊。 我知道我可以遍歷樹並使用copy-of將所有節點添加到輸出中,但是我不知道是否沒有更好更優雅的方法來完成此操作。

回答

0
<xsl:param name="new-ts"> 
    <timestampInfo xmlns="myNameSpace"> 
    ... 
    </timestampInfo> 
</xsl:param> 

<xsl:template match="@* | node()"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="ns3:timestampList"> 
    <xsl:copy> 
    <xsl:apply-templates select="@* | node()"/> 
    <xsl:copy-of select="$new-ts"/> 
    </xsl:copy> 
</xsl:template> 

可能足以給你一個想法,雖然與使用不同的命名空間,但你的樣品中沒有完全放棄我的代碼也是不完整的。