ich eine Struktur mit wiederkehrenden Elementen wie diese:Wie XPath verwendet, um die nächsten Vorfahren in einer Vorfahren-or-Selbst zu finden Nodelist
<a>
<b>
<a>
</a>
</b>
<a>
<b>
<a>
<c att="val" />
</a>
</b>
</a>
</a>
asuming den c-Knoten ist der $ currentNode, wenn ich
XPath<xsl:value-of select="($currentNode/ancestor-or-self::a)" />
ich erhalte eine ungeordnete Liste von Knoten, die den Ausdruck übereinstimmen. Was ich brauche, ist, den Knoten immer am nächsten zum Baum zu bringen, wie in den Ästen oder dem höchsten Level.
Ich kann nicht XPath 2 max-Funktion wie diese leider verwenden:
<xsl:value-of select="($currentNode/ancestor-or-self::a)[max(@level)]" />
Beachten Sie, dass in der Nähe eines Knoten nicht immer genau über dem Kontext, nur dort irgendwo ...
All Vorschläge geschätzt!
Grüße Alex
Ich versuchte diesen Ansatz. Auflistung der ersten, der zweiten usw. Und ich finde, der nächste Knoten ist auf dem zweiten Platz ... :( – Alex
Sind Sie sicher, $ currentNode = Element c? – Istao
Ja, aber vielleicht bekomme ich diesen Effekt, weil meine tatsächlichen XPath "Vorfahr ist -oder-selbst :: */a "und nicht nur a ?? (Ich habe es vereinfacht, um Dinge zu klären) – Alex