compter le nombre d'occurrences d'une chaîne de caractères au format XML à l'aide de XSLT

Je veux calcutae le nombre d'occurrences d'une chaîne dans un nœud particulier dans le document XML à l'aide de XSLT.
Considérons cet exemple

 <mainNode>
<book>
    <price> 100 </price>
    <city> chennai </city>
    <list>
        <language> c java ruby </language>
    </list>
</book>

<book>
    <price> 200 </price>
    <city> banglore </city>
    <list>
        <language> c java </language>
    </list>
</book>

<book>
    <price> 300 </price>
    <city> delhi </city>
    <list>
        <language> java ruby </language>
    </list>
</book>
</mainNode>      

Ici, je veux compter les occurrences de "java"

Je Veux de Sortie ressemble à ceci:: java -- 3

Comment faire??? une idée???

Bonne question, +1. Voir ma réponse pour une complète, court et facile one-liner expression XPath solution. 🙂
Point mineur, mais votre XML est mal conçu. Vous devriez vraiment avoir une liste de <language> éléments, comme ceci: <list><language>java</language><language>ruby</language></list> au lieu de l'avoir dans un espace séparé pour une liste à un seul élément; il aurait fait cette triviale de répondre, avec count(//language[.='java']).
Aussi, vous n'avez pas répertorié dans un exemple, mais pourrait javascript apparaître dans la liste des langues?

OriginalL'auteur Sathish | 2011-07-13