Wie zählen bestimmte Knoten in XML-Hierarchie unter der Bedingung in XSL hängt

StackOverflow https://stackoverflow.com/questions/1367552

  •  21-09-2019
  •  | 
  •  

Frage

Ich bin ein Stylesheet in xsl Schreiben (Version 2.0) Ich möchte wissen, wie ich alle Knoten mit einem bestimmten Namen zählen konnte, obwohl sie nicht Geschwister zum Beispiel in der folgenden XML Ich mag die Anzahl der Produkte vom Typ -milch zählen, sondern von allen Geschäften. Ich möchte wissen, ob es einen Weg gibt, die Count-Funktion zu verwenden und nicht mit Rekursion zu kämpfen. Ergebnis sollte 4 für dieses Beispiel sein

<Shops><Shop>
<Product>
    <Name>yogurt</Name>
    <type>Milk</type>
</Product>
<Product>
    <Name>cheese</Name>
    <type>Milk</type>
</Product>
<Product>
    <Name>bread</Name>
    <type>Bakery</type>
</Product> </Shop> <Shop>
<Product>
    <Name>yellow cheese</Name>
    <type>Milk</type>
</Product>
<Product>
    <Name>chocolate milk</Name>
    <type>Milk</type>
</Product>
<Product>
    <Name>bagel</Name>
    <type>Bakery</type>
</Product>
<Product>
    <Name>candy</Name>
    <type>Sweets</type>
</Product>  </Shop></Shops>
War es hilfreich?

Lösung

Dies vermeidet den langsamen "//" Operator.

count(/Shops/Shop/Product[type = 'Milk'])

Andere Tipps

count(//Product[type='Milk'])

// findet alle passenden Knoten irgendwo im Dokument.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top