确定节点是否包含在XSLT中的另一个节点中
问题描述:
是否可以确定节点是否包含在XSLT中的另一个节点中(或等于)?例如,请考虑以下代码片段:确定节点是否包含在XSLT中的另一个节点中
<xsl:variable name="itemSection" select=".."/>
<xsl:for-each select="key('enemyItems', @key)">
<xsl:variable name="enemyList" select="./attributes/@value"/>
<xsl:variable name="enemyListSection" select="../../.."/>
.
.
.
</xsl:for-each>
是否可以告诉itemSection是否包含在(或等于)enemyListSection?
答
在XPath 1.0
$itemSection[ancestor::*[generate-id()=generate-id($enemyListSection)]]
在XPath 2.0
$itemSection[ancestor::*[. is $enemyListSection]]
+0
请参阅我对答案的正确性所做的小贡献。 :) – 2010-07-30 17:44:35
答
只是一个小调整,亚历杭德罗的回答:
在XPath 1.0
$itemSection[ancestor-or-self::*[generate-id()=generate-id($enemyListSection)]]
在XPath 2.0
$itemSection[ancestor-or-self::*[. is $enemyListSection]]
因为原来的问题问:
是否可以告诉 itemSection是否包含在(或 等于)enemyListSection?
+0
我错过了重要的“(或等于)”。你的答案是正确的。 – 2010-07-30 17:55:11
检查Dimitre正确答案。我错过了“(或等于)”部分。 – 2010-07-30 17:56:43