Come contare nodi specifici in XML gerarchia dipende dalle condizioni in XSL

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

  •  21-09-2019
  •  | 
  •  

Domanda

Sto scrivendo un foglio di stile XSL (versione 2.0) Vorrei sapere come ho potuto contare tutti i nodi con un nome specifico anche se non sono fratelli per esempio nel seguente codice XML Voglio contare il numero di prodotti da tipo -latte ma da tutti i negozi. Voglio sapere se c'è un modo per utilizzare la funzione di conteggio e non alle prese con ricorsione. risultato dovrebbe essere 4 per questo esempio

<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>
È stato utile?

Soluzione

Questo evita l'operatore lento "//".

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

Altri suggerimenti

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

// trova tutti i nodi corrispondenti in qualsiasi parte del documento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top