Hallo zusammen,
ich hoffe sehr, das mir geholfen werden kann, da ich momentan einfach nicht weiter komme. folgendes Problem:
Ich habediesen xml-Code (nur beispielhaft):
Alles anzeigen
Darin gibt es einen redundanten Datensatz (Id=52942347, Titel=Eb2_Unterknoten). Ich möchte nur diese node mit einer Angabe wie oft sie vorkommt ausgegeben haben. Ich habe es folgendermaßen versucht:
Alles anzeigen
Momentan werden alle Knoten ausgegeben, da ja auch "self" verglichen wird und somit die Bedingung @Id = $current.Id für alle zutrifft. Muss ich wirklich auch noch die Verschachtelungsebene mit in die Bedingung bauen und wenn ja wie geht das?
Ich hoffe es ist halbwegs klar was mein Problem ist und hoffe auf eure Hilfe!
Danke und Grüße
Helix
ich hoffe sehr, das mir geholfen werden kann, da ich momentan einfach nicht weiter komme. folgendes Problem:
Ich habediesen xml-Code (nur beispielhaft):
Quellcode
- <root>
- <node Id="52930571" Titel="TestBaum" Class="TextFolder" FrStatus="" Prod_Gruppe="" Prod_art="" Produkt="" Pfad="/Informationen/Spielwiese/Spiel/TestBaum">
- <node Id="52931339" Titel="Eb1" Class="TextFolder" FrStatus="" Prod_Gruppe="" Prod_art="" Produkt="" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1">
- <node Id="52932107" Titel="Eb2" Class="TextFolder" FrStatus="" Prod_Gruppe="" Prod_art="" Produkt="" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2">
- <node Id="52932875" Titel="Eb3" Class="TextFolder" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2/Eb3">
- <node Id="52936715" Titel="Eb3_Knoten" Class="Knoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2/Eb3/Eb3_Knoten">
- <node Id="52946059" Titel="Eb3_Unterknoten" Class="Unterknoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2/Eb3/Eb3_Knoten/Eb3_Unterknoten"/>
- </node>
- </node>
- <node Id="52935179" Titel="Eb2_Knoten" Class="Knoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2/Eb2_Knoten">
- <node Id="52942347" Titel="Eb2_Unterknoten" Class="Unterknoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2/Eb2_Knoten/Eb2_Unterknoten"/>
- </node>
- </node>
- <node Id="52933643" Titel="Eb1_Knoten" Class="Knoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb1_Knoten">
- <node Id="52938763" Titel="Eb1_Unterknoten" Class="Unterknoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb1_Knoten/Eb1_Unterknoten"/>
- <node Id="52942347" Titel="Eb2_Unterknoten" Class="Unterknoten" Pfad="/Informationen/Spielwiese/Spiel/TestBaum/Eb1/Eb2/Eb2_Knoten/Eb2_Unterknoten"/>
- </node>
- </node>
- </node>
- </root>
Darin gibt es einen redundanten Datensatz (Id=52942347, Titel=Eb2_Unterknoten). Ich möchte nur diese node mit einer Angabe wie oft sie vorkommt ausgegeben haben. Ich habe es folgendermaßen versucht:
Quellcode
- <xsl:template match="/">
- <xsl:value-of select="count(//node[@Class='Knoten' or @Class='Unterknoten'])"/>
- <xsl:element name="br"/>
- <xsl:apply-templates select="//node[@Class='Knoten' or @Class='Unterknoten']"/>
- </xsl:template>
- <xsl:template match="node">
- <xsl:variable name="current.Id">
- <xsl:value-of select="@Id"/>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="//node[@Id = $current.Id]"> <!-- funktionier nicht! Hier liegt wohl das Problem -->
- <xsl:text>JUHU: </xsl:text>
- <xsl:value-of select="@Titel"/><xsl:text> Id: </xsl:text>
- <xsl:value-of select="@Id"/>
- <xsl:element name="br"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>Node ohne Reuse: </xsl:text>
- <xsl:value-of select="@Titel"/><xsl:text> Id: </xsl:text>
- <xsl:value-of select="@Id"/>
- <xsl:element name="br"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
Momentan werden alle Knoten ausgegeben, da ja auch "self" verglichen wird und somit die Bedingung @Id = $current.Id für alle zutrifft. Muss ich wirklich auch noch die Verschachtelungsebene mit in die Bedingung bauen und wenn ja wie geht das?
Ich hoffe es ist halbwegs klar was mein Problem ist und hoffe auf eure Hilfe!
Danke und Grüße
Helix