我有以下XML(简化):
<node1>
<node2>
<node3>
</node3>
</node2>
</node1>
我需要确定(使用XSL)node3是否有一个名为node1的父级(不仅是中级父级,因此在示例中node3是node1的子级)
以下代码无效:
<xsl:if test="parent::node1">
</xsl:if>
谢谢
答案 0 :(得分:10)
node3 不是直接子,而是后代。改为使用 ancestor 轴,它选择当前节点的所有祖先(父级,祖父级等)。
http://www.w3schools.com/xpath/xpath_axes.asp
<xsl:if test="ancestor::node1">
</xsl:if>
答案 1 :(得分:1)
试试这个:
<xsl:if test="count(ancestor::node1)>0">
</xsl:if>
如果您愿意,可以省略计数,但不是必需的。当您处于递归结构中以查找当前节点所在的深度时,它会很有用。