Knoten auf "leer", "nicht vorhanden" & "keine Attribute" testen
andi123
- xsl
Hallo,
ich möchte ein XML per XSLT transformieren.
Wie kann ich prüfen, ob ein Knoten
Man kommt bei dem Test auf Childs und Attribute mit
<xsl:if test="string-length(childName)"/>
bzw.
<xsl:if test="string-length(@attributeName)"/>
weiter, nur habe ich das Problem, dass Knoten bist zu 20 Childs haben können bzw. bis zu fünf Attribute, mit relativ langen Bezeichnern.
Da müsste ich ja eine ewig lange (also auch vom Tippen her) if-Abfrage bauen?!
Gibt es evtl. einen direkteren Befehl in XSLT um die Tests durchzuführen?
Habe noch <xsl:if test="count(childName) > 0"/>
gefunden, aber auch da müsste ich ja auf jeden der 20 childNames testen.
Vielen Dank,
Andreas
Hi
mittels XPath sollte das gehen:
- nicht vorhanden ist,
<xsl:if test="//nodename"/>
sucht im ganzen Baum nach dem Knoten "nodename".
Der Test schlägt fehl wenn der Knoten nicht da ist.
- leer ist (also keine Childs hat) und
<xsl:if test="child::*"/>
child::* liefert alle Kinder des aktuellen Knotens
Der Test schlägt daher fehl wenn keine Kinder da sind.
- keine Attribute hat?
<xsl:if test="@*"/>
@* liefert alle Attribute des aktuellen Knotens
Der Test schlägt daher fehl wenn keine Attribute da sind.
PS: ohne gew(e|ä)hr... also ungetestet
PPS: hier gibts ne XPath Einführung: http://www.w3schools.com/Xpath/
greetz,
eeye
DANKE!!!!!!!
Werd ich ausprobieren.
Wünsche ein schönes Wochenende!