Подсчет узлов с определенными значениями атрибутов в 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, я могу посчитать элементы, которые имеют scored
attribute
как это:
<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']"/>