2013-03-28 84 views
0

我想選擇與文檔中任何位置的特定模式匹配的最後一個節點。使用XSLT選擇整個文檔中的最後一個元素

我試圖像

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <xsl:copy-of select="//node_name[last()]"/> 
    </xsl:template> 
</xsl:stylesheet> 

然而,隨着撒克遜9.4以下文件運行此當: -

<a> 
    <node_name attr="1"/> 
    <b> 
    <c> 
    </c> 
    <node_name attr="2"/> 
    </b> 
</a> 

我得到這個輸出在副本里的語句在於: -

<node_name attr="1"/><node_name attr="2"/> 

雖然我其實想輸出: -

<node_name attr="2"/> 

我在這裏錯過了什麼?另外,我的文檔的性質是這樣的,我事先不知道這個節點的確切路徑是什麼(因爲它是由一堆遞歸元素組成的)。

回答

2

你不是在尋找node_name這是最後一個,你正在尋找所有node_names的最後一個。因此,以下XPath表達式應該可以工作:

(//node_name)[last()] 
相關問題