同一子节点上的XPath多个条件

时间:2016-11-16 13:48:39

标签: xml xslt xpath

我需要根据他们的一个孩子是否遵循所有条件来过滤节点。这是一个例子:

<root>
    <grp pos="1">
        <test pos="1" id="2"/>
        <test pos="2" id="1"/>
        <test pos="3" id="1"/>
        <test pos="4" id="2"/>
        <test pos="5" id="1"/>
    </grp>
    <grp pos="2">
        <test pos="6" id="1"/>
        <test pos="7" id="2"/>
        <test pos="8" id="1"/>
        <test pos="9" id="1"/>
        <test pos="10" id="2"/>
    </grp>
</root>

和xsl

<xsl:template match="/root">
    <xsl:value-of select="grp[test/@pos='1' and test/@id='1']/@pos"/>
</xsl:template>

我需要test来引用两个条件的相同节点。我想要的是没有任何grp节点来传递条件,但第一个节点是因为它有一个传递第一个条件的子节点而另一个传递第二个条件。我希望谓词需要一个通过两者的孩子。

1 个答案:

答案 0 :(得分:0)

好的,我不知道,但似乎你可以嵌套谓词:

<xsl:value-of select="grp[test[@pos='1' and @id='1']]/@pos"/>

这就是我想要的