2010-06-21 13 views
1

Supposons que j'ai quelques XML comme ceci:comptage des noeuds avec certaines valeurs d'attributs dans XSLT

<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> 

Maintenant, je sais, en utilisant XSLT, je peux compter les éléments qui ont une scoredattribute comme ceci:

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

Cela me donnera une valeur de 3, bien sûr. Supposons que je ne veuille compter que les éléments pour lesquels scored est true. Comment est-ce que je fais ça en utilisant XSLT? (Cela devrait retourner une valeur de 2 pour cet exemple

Répondre

7

le faire comme ceci:.

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