Matthias: position() mit anderer Einschränkung kombinieren

Hallo,

ich versuche gerade eine Selektion, bekomme sie aber nicht hin...

Ich versuche das erste Element mit einem bestimmten Wert in einem seiner Kindelemente aus einer Reihe von Geschwisterelementen zu selektieren:

/descendant::gal:group[gal:tags/gal:gam=$tit and position() = 1]

Das klappt aber nur, wenn gal:group[gal:tags/gal:gam=$tit] das erste Kindelement ist. Ist das gesuchte Element das 2.+ Element, gibt es kein Resultat.

position() verhält sich also absolut und nicht relativ (eigentlich logisch). Kann ich den XPath irgendwie so bauen, dass das position() relativ zur vorherigen Einschränkung angegeben ist? Also das erste Kindelement mit der Einschränkung auf gal:tags/gal:gam=$tit?

Wahrscheinlich ist die Lösung total simpel und ich sehe nur den Wald vor lauter Bäumen nicht... Oder benutze ich den völlig falschen Ansatz?

Vielen Dank für jeden Hinweis.

Gruß

Matthias

  1. Also diese Abfrage:
    /descendant::gal:group[gal:tags/gal:gam=$tit]
    müsste dir ja ein resultset (Knotenmenge) mit allen passenden Knoten welche die Bedingung in der eckingen Klammer erfüllen liefern.

    Und von dieser Knotenmenge willst du jetzt das 1. Element. Könnte das nicht einfach so gehen?
    /descendant::gal:group[gal:tags/gal:gam=$tit][0] bzw [1] je nachdem wo Index anfängt?

    1. /descendant::gal:group[gal:tags/gal:gam=$tit][1] geht... so einfach...

      Danke ms88!