Test auf Position eines Knotens

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Test auf Position eines Knotens

    Ich habe mir ein Stylesheet für XML-Dateien erstellt. Nun möchte ich in einem bestimmten Knoten zwei Tests durchführen.

    (1) Ich möchte wissen, ob er der letzte Knoten ist.

    Bsp.:
    Code:
    <aknoten>
      <bknoten1/>
      <bknoten2/>
    </aknoten>
    Für 'bknoten1' wäre der Test negativ, für 'bknoten2' positiv.


    (2) Ich möchte wissen, ob ein bestimmter Knoten einen Vorfahren von einem bestimmten Typen hat.

    BSP: Ist 'aknoten' Vorfahr?
    Code:
    <aknoten>
      <bknoten1>
        <cknoten1/>
      </bknoten>
    </aknoten>
    <cknoten2/>
    Für 'cknoten1' wäre der Test ergo positiv, für 'cknoten2' folglich negativ.

    Vorschläge?

    Vielen Dank im Voraus!

  • #2
    Einen test ob der Knoten der letze ist kannst du wie folgt machen (es ist aber keine besonders gute Idee sich darauf zu verlassen, dass die Knoten in einer bestimmten Reihenfolge auftauchen):
    Code:
    <xsl:if test="self::node()[position() = last()]"/>
    <!-- Ich bin mir nicht so ganz sicher hiermit und es funktioniert auch nur in einem xsl:for-each -->
    Das zweite Problem lässt sich folgendermaßen lösen (für weiter Infos zu Axis: http://www.w3.org/TR/xpath)
    Code:
    <xsl:if test="count(ancestor::aknoten) &gt; 0"/>
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

    Kommentar


    • #3
      Na, das hilft mir doch schon mal enorm weiter. Danke.

      Kommentar

      Lädt...
      X