У меня есть XML, как это:счетных узлов в XSLT, чьи родительские узлы имеют определенные атрибуты
<exam>
<section name="SampleSection1">
<attributes>
<variable_name data_type="String" value="SCORE"/>
</attributes>
<item name="SampleItem1-1"/>
<item name="SampleItem1-2"/>
<item name="SampleItem1-3"/>
</section>
<section name="SampleSection2">
<attributes>
<variable_name data_type="String" value="NO-SCORE"/>
</attributes>
<item name="SampleItem2-1"/>
<item name="SampleItem2-2"/>
</section>
</exam>
Я хочу, чтобы подсчитать количество элементов, которые находятся в разделе, который имеет variable_name из «SCORE».
Я думал, что это будет делать работу:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="section">
<xsl:variable name="scoredItems"
select="./item/../attributes/variable_name[@value='SCORE']"/>
<xsl:variable name="scoredItemsCount" select="count($scoredItems)"/>
<xsl:value-of select="$scoredItemsCount"/>
</xsl:template>
</xsl:stylesheet>
Однако, это выходы:
1
0
не
3
0
который я бы ожидать (и хотят) ,
Что я здесь делаю неправильно?