ho una struttura con elementi ricorrenti come questo:Come usare XPath per trovare l'antenato più vicino in un antenato-or-self nodelist
<a>
<b>
<a>
</a>
</b>
<a>
<b>
<a>
<c att="val" />
</a>
</b>
</a>
</a>
Asuming il c-nodo è il $ nodoCorrente, quando uso XPath
<xsl:value-of select="($currentNode/ancestor-or-self::a)" />
Ottengo un elenco non ordinato di nodi che corrispondono all'espressione. Quello di cui ho bisogno è di ottenere sempre il nodo più vicino all'albero, come nel più profondo dei rami o il più alto @ livello.
non posso usare XPath 2 max-funzione come questa, purtroppo:
<xsl:value-of select="($currentNode/ancestor-or-self::a)[max(@level)]" />
Si noti che la più vicina a-nodo non sempre è esattamente al di sopra del contesto, solo un posto lassù ...
Qualsiasi suggerimenti apprezzati!
saluti Alex
Ho provato questo approccio. Elencando il primo, il secondo ecc. E trovo il nodo più vicino al secondo posto ... :( – Alex
Sei sicuro $ currentNode = elemento c? – Istao
Sì, ma forse ottengo questo effetto perché il mio XPath attuale è "antenato" -o-self :: */a "e non solo a ?? (l'ho semplificato per chiarire le cose) – Alex