Anzahl von bestimmen Textknoten-Kombinationen zählen?
Selloso
- xsl
0 MudGuard0 Selloso
0 Knut Meinke0 Selloso
Hallo Leute,
ich habe ein Problem,vielleicht könnt Ihr mir helfen.
Ich habe ungefähr folgende XML-Struktur
[CODE]
<record No="1">
<data>
<Feld1><![CDATA[D]]></Feld1>
<Feld2><![CDATA[1]]></Feld2>
</data>
</record>
<record No="2">
<data>
<Feld1><![CDATA[D]]></Feld1>
<Feld2><![CDATA[2]]></Feld2>
</data>
</record>
<record No="3">
<data>
<Feld1><![CDATA[E]]></Feld1>
<Feld2><![CDATA[3]]></Feld2>
</data>
</record>
<record No="4">
<data>
<Feld1><![CDATA[D]]></Feld1>
<Feld2><![CDATA[1]]></Feld2>
</data>
</record>[/CODE]
Die CDATA-Angabe habe ich Sonderzeichen wegen gemacht.
Ich möchte nun gerne die Anzahl der Kombination z.B. "Feld 1" = D und "Feld 2" = 1 zählen. In meinem Code-Beispiel wäre diese Anzahl 2. Diese Zählung möchte ich danach mit einer If-Anweisung übrprüfen und wenn diese Kombination in keinem data-Element auftaucht, möchte ich etwas ausgeben.
[CODE] <xsl:variable name="anzahl" select="count(../Feld1[. = 'D']) and count(../Feld2[. = '1'])" />
<xsl:if test="not($anzahl4)">
...
...[/CODE]
So funktioniert es nicht, aber es muss doch irgendwie funktioniert, in Abhäbgikeit von zwei Textknoten zu zählen.
Ziel soll übrigens sein, mit FOP - http://xmlgraphics.apache.org/fop/ -eine PDF zu erzeugen.
Ich hoffe stark, dass Ihr mir helfen könnt.
Ciao
Sel
Hi,
[CODE]<record No="1">
<data>
<Feld1><![CDATA[D]]></Feld1>
<Feld2><![CDATA[1]]></Feld2>
</data>
</record>[/CODE]
Ich möchte nun gerne die Anzahl der Kombination z.B. "Feld 1" = D und "Feld 2" = 1 zählen. In meinem Code-Beispiel wäre diese Anzahl 2.
Du willst also die Anzahl der record-Elemente zählen, die data/Feld1 = 'D' und data/Feld2 = '1' haben.
==> count(record[(data/Feld1 = 'D') and (data/Feld2 = '1')])
(ungetestet)
cu,
Andreas
Ich danke Dir, ganz herzlich!
Es funktioniert!
Sel
Möchtest du die Anzahl der Feld1 + Feld2 Knoten mit D oder 1 wissen?
<xsl:variable name="anzahl" select="count(../Feld1[. ='D']) + count(../Feld2[. = '1'])"/>
Oder willst du wissen in wieviel data Knoten Feld1 = D und Feld2 = 1 ist?
<xsl:variable name="anzahl" select="count(../Feld1[. = 'D'] and ../Feld2[. ='1'])"/>
gruß Knut
Vielen Dank, für die Antwort!
Deine Lösung klappt (auch)!
Ciao
Sel