我有一個文件,看起來像我可以在XSLT中動態構建此XPath查詢嗎?
<root>
<element>
<subelement1 />
<subelement2 />
</element>
<element>
<subelement2 />
<subelement1 />
</element>
</root>
在我的XSLT表中的/element[2]/[someNode]
的方面,我希望得到一個數字,它代表/element[1]/[someNode]
的距離(即,/element1/[someNode]
前面的兄弟姐妹的數量)。例如,在/element[2]/subelement1
的背景下,我想獲得數字2,從/element[1]
到/element[1]/subelement2
的距離。我只需要從<element>
的第一個實例中獲得給定節點名稱的距離。
憑直覺,我想我能夠構建這就像
<xsl:variable name="nodename" select="name()" />
<xsl:value-of select="/element[1]/$nodename/preceding-sibling::*" />
但不幸的是這片不會編譯。我試圖在XSLT中實現可能性嗎?
你的例子似乎不一致:在'/ element [2]/[someNode]'的上下文中,想要查找'/ element [2]/[subelement1'中的例子'/ element [1]/[someNode]',從'/ element [1]'到'/ element [1]/subelement的距離2' - so [someNode]在這裏是subelement2還是subelement1? –
參見http://stackoverflow.com/questions/4630023/dynamic-xpath-in-xslt – Vadzim