2017-01-04 5 views
0

ich einige XML-Code haben wie:Zähler innerhalb foreach-Schleife Xslt

<b> 
    <A a="1"/> 
    <A a="2"/> 
    <A a="1"/> 
</b> 

und ich möchte die Anzahl der Elemente A zählen, die als Wert von a haben, 1 Also ich mit einem

versucht haben,

for-each A count (@ a = 1)

, aber es funktioniert nicht ...

Jemand weiß, wie es zu tun?

Dank

+2

Ich würde es lieber aus einer anderen Perspektive betrachten. Sie brauchen nicht einmal eine "for-each" -Schleife ... Warum nicht etwas wie "count (// A [@ a = 1])" verwenden? – Roland

+0

Sag niemals "es funktioniert nicht". Sag uns, wie es scheitert. –

Antwort

0

Das Ergebnis @a=1 ist ein boolean. Ein boolescher Wert ist ein Singleton, dh. Eine Folge der Länge 1, so dass count() auf einen booleschen Wert angewendet wird, liefert 1.

Um die Anzahl der Knoten in einem Knotensatz zu zählen, verwenden Sie count(X) Dabei ist X ein Ausdruck, der den Knotensatz zurückgibt: hier count(/b/A[@a='1']).

Verwandte Themen