你想要的 「最近」(兩在前):
(/*/*[self::concept or self::sections]/title)[1]
如果你想 「最新」 (最後)其中,使用方法:
(/*/*[self::concept or self::sections]/title)[last()]
XSLT - 基於驗證:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select=
"(/*/*[self::concept or self::sections]/title)[1]"/>
===============
<xsl:copy-of select=
"(/*/*[self::concept or self::sections]/title)[last()]"/>
</xsl:template>
</xsl:stylesheet>
當在下面的XML文檔被應用於這種轉變:
<chapter>
<concept>
<title>*********Title 1************</title>
.
.
</concept>
<sections>
<title>**********Title 2*********</title>
</sections>
</chapter>
兩個的XPath表達式,並且它們的結果複製到輸出:
<title>*********Title 1************</title>
===============
<title>**********Title 2*********</title>
對我來說看起來不錯。 –
@ hr_117,不客氣。是的,除非已知使用XPath處理器正在優化此類表達式,否則這比從聯合中指定第一個節點更有效。 –