我有以下XML(簡體):XSL - 執行代碼,如果一個節點有一個給定的節點作爲父
<node1>
<node2>
<node3>
</node3>
</node2>
</node1>
,我需要確定(使用XSL)如果節點3有一個父命名的節點1(未只有inmediate父,因此在本例中節點3是節點1的孩子)
下面的代碼是不工作:
<xsl:if test="parent::node1">
</xsl:if>
謝謝
我有以下XML(簡體):XSL - 執行代碼,如果一個節點有一個給定的節點作爲父
<node1>
<node2>
<node3>
</node3>
</node2>
</node1>
,我需要確定(使用XSL)如果節點3有一個父命名的節點1(未只有inmediate父,因此在本例中節點3是節點1的孩子)
下面的代碼是不工作:
<xsl:if test="parent::node1">
</xsl:if>
謝謝
節點3不是直接孩子,它是一個後裔。代之以使用祖先軸,該軸選擇當前節點的所有祖先(父,祖父母等)。
http://www.w3schools.com/xpath/xpath_axes.asp
<xsl:if test="ancestor::node1">
</xsl:if>
試試這個:
<xsl:if test="count(ancestor::node1)>0">
</xsl:if>
可以省略計數,如果你喜歡,它不是必需的。當您在遞歸結構中查找當前節點的深度時,它會很有用。