我试图找到一种方法来确保感兴趣的元素不(递归地)包含“相同”元素。例如:
<Ev>
<Ev attr="0">
<Ev someOtherAttr="str1">
<Ev attr="1">
<Ev>
</Ev>
</Ev>
</Ev>
</Ev>
</Ev>
在这里,我想确保我拥有的元素是属性名为 attr 的最深的元素(属性值可以是任意的,不应匹配也不应考虑在内)。
因此,在这种情况下,我想<Ev attr="1">
从两个“相同”元素中进行选择:
<Ev attr="0">
和<Ev atttr="1">
我的目标是:
<xsl:for-each select="//Ev/@attr">
<xsl:if select="//*[not(child::Ev/@attr)]">
<xsl:value-of select="count(ancestor::node())"/>
</xsl:if>
</xsl:for-each>
但是if部分当然不好,也许 for-eachselect="<condition_a> and not(<condition_b>)"
是要走的路?
(用我尝试过的方法编辑了问题)
最好的问候,手枪先生