Thorsten F.: Prüfen ob Knoten vorhanden

Hallo Leute,
ganz einfaches Problem (denk ich mal), aber ich bekomme es nicht hin.

Wie kann ich in XSL prüfen, ob in der zu verarbeitenden XML ein bestimmter Knoten vorhanden ist?

Beispiel:

<root>
     <woche id="1">Dies ist Woche 1</woche>
     <woche id="2">Dies ist Woche 2</woche>
</root>

Das Beispiel ist zwar sehr vereinfacht, aber im Prinzip beschreibt es mein Problem. Ich möchte herausfinden ob es den Knoten mit dem Attribut id="2" gibt. Denn falls dieser vorhanden ist, so soll eine Checkbox einen Haken haben, ansonsten soll die Checkbox leer bleiben.

Das mit der Checkbox habe ich bereits, nur das die im Moment immer einen Haken hat, egal ob es den zweiten Knoten gibt oder nicht.

Nochwas: Das Attribut id="2" muss nicht immer 2 sein. Die XML wird dynamisch generiert und ich möchte jetzt prüfen ob der Root-Knoten mehr als einen (Haupt-)Unterknoten hat.
Wie mach ich das?

  1. Hallo Thorsten F.,

    die Node-Set-Funktion count könnte das sein, was du suchst,
    in Kombination mit einen xsl:if.

    Gruß Mia

    1. Wunderbar.
      Besten Dank!

  2. Hallo,

    ganz einfaches Problem (denk ich mal), aber ich bekomme es nicht hin.

    Wie kann ich in XSL prüfen, ob in der zu verarbeitenden XML ein bestimmter Knoten vorhanden ist?

    Nochwas: Das Attribut id="2" muss nicht immer 2 sein. Die XML wird dynamisch generiert und ich möchte jetzt prüfen ob der Root-Knoten mehr als einen (Haupt-)Unterknoten hat.
    Wie mach ich das?

    <xsl:if test="count(root/woche) &gt; 1">
    <!-- mach was -->
    </xsl:if>

    Der Ausdruck count(root/woche)zählt die Elemente "woche" und wenn die Anzahl größer als 1 ist, werden die Anweisungen im xsl:if ausgeführt.
    Du muss den Pfad im count() auf deine Gegebenheiten anpassen.

    Grüße
    Thomas

    --
    Surftip: kennen Sie schon Pipolino's Clowntheater?
    http://www.clowntheater-pipolino.net/