Подсчет узлов с определенными значениями атрибутов в XSLT

Предположим, у меня есть такой 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, я могу посчитать элементы, которые имеют scoredattribute как это:

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

Это даст мне значение 3, конечно.

Предположим, я хочу считать только те предметы, для которых scored является true, Как мне это сделать с помощью XSLT? (Это должно вернуть значение 2 для этого примера.

1 ответ

Решение

Сделай это так:

<xsl:variable name="scoredItems"
              select=
                  "item/attributes/scored[@value='true']"/>
Другие вопросы по тегам