Mam strukturę z powtarzających się elementów tak:Jak używać XPath aby znaleźć najbliższy przodek w ancestor-or-self NodeList
<a>
<b>
<a>
</a>
</b>
<a>
<b>
<a>
<c att="val" />
</a>
</b>
</a>
</a>
Asuming C-węzeł jest $ currentNode, gdy używam XPath
<xsl:value-of select="($currentNode/ancestor-or-self::a)" />
Otrzymuję nieuporządkowaną listę węzłów odpowiadającą wyrażeniu. Potrzebuję zawsze, aby węzeł był najbliżej drzewa, tak jak najgłębiej w gałęziach lub na najwyższym poziomie @.
nie mogę używać XPath 2 max-funkcję jak to niestety:
<xsl:value-of select="($currentNode/ancestor-or-self::a)[max(@level)]" />
Zauważ, że najbliżej a-węzeł nie zawsze jest dokładnie powyżej kontekstu, tylko gdzieś tam ...
Wszelkie sugestie doceniane!
Pozdrowienia Alex
Próbowałem tego podejścia. Wymieniając pierwszy, drugi itd. I uważam, że najbliższy węzeł znajduje się na drugim miejscu ... :( – Alex
Czy jesteś pewien, że $ currentNode = element c? – Istao
Tak, ale może dostaję ten efekt, ponieważ mój aktualny XPath jest "przodkiem" -or-self :: */a "a nie tylko? (uprościłem to, by wyczyścić) – Alex