在XSLT中计算具有某些属性值的节点

时间:2010-06-21 19:20:07

标签: xslt select variables value-of

假设我有这样的XML:

    <section name="SampleSection">
        <item name="ScoredItem1">
            <attributes>
                <scored data_type="boolean" value="true"/>
            </attributes>
        </item>
        <item name="UnscoredItem1">
            <attributes>
                <scored data_type="boolean" value="false"/>
            </attributes>
        </item>
        <item key="(3272fbb5:22)" name="ScoredItem2">
            <attributes>
                <scored data_type="boolean" value="true"/>
            </attributes>
        </item>
    </section>

现在,我知道,使用XSLT,我可以计算scored attribute这样的项目:

<xsl:variable name="scoredItems" select="item/attributes/scored"/>
<xsl:value-of select="count($scoredItems)"/>

当然,这将给我一个值3。

假设我只想计算scoredtrue的项目。我如何使用XSLT做到这一点? (对于此示例,这应该返回值2。

1 个答案:

答案 0 :(得分:9)

这样做:

<xsl:variable name="scoredItems"
              select=
                  "item/attributes/scored[@value='true']"/>