XSL计数父节点没有具有特定属性的子节点

时间:2013-09-20 20:08:56

标签: xml xslt

我有一个带有某个节点的xml文件(在本例中为parentNode),我想知道有多少specialNode没有具有某个属性的childNode。

示例:

<parentNode>
    <specialNode>
        <childNode attrib=true />
        <childNode attrib=false />
    </specialNode>
    <specialNode>
        <childNode attrib=true />
        <childNode attrib=true />
    </specialNode>
    <specialNode>
        <childNode attrib=false />
    </specialNode>
</parentNode>

我想打电话给:

<xsl:variable="foo" select="count( not( */specialNode/childNode[ attrib="true" ] ) ) />

...并且要使foo = 1,因为只有一个specialNode,其所有子节点的attrib = false。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

count(/parentNode/specialNode[not(childNode[@attrib='true'])])

这是更正后的XML

<parentNode>
    <specialNode>
        <childNode attrib="false"/>
        <childNode attrib="false"/>
    </specialNode>
    <specialNode>
        <childNode attrib="true"/>
        <childNode attrib="true"/>
    </specialNode>
    <specialNode>
        <childNode attrib="false"/>
    </specialNode>
</parentNode>