Ottenere i dati XML all'interno della funzione XPath personalizzato
Domanda
Esiste un modo per ottenere i dati XML correnti quando creiamo la nostra funzione XPath personalizzata (vedi qui).
So che hai accesso a un XPathContext
ma basta questo?
Esempio:
Il nostro XML:
<foo>
<bar>smang</bar>
<fizz>buzz</fizz>
</foo>
Il nostro XSL:
<xsl:template match="/">
<xsl:value-of select="ourFunction()" />
</xsl:template>
Come otteniamo l'intero albero XML?
Modificare: Chiarire:Sto creando una funzione personalizzata che finisce per eseguire codice Java statico (è una funzionalità sassone).Quindi, in questo codice Java, desidero poter ottenere elementi dall'albero XML, come bar e fizz, e i relativi CDATA, come smang e buzz.
Soluzione
Prova a cambiare il tuo XSL in modo da chiamare "ourFunction(/)".Questo dovrebbe passare il nodo radice alla funzione.Potresti anche provare.O ..
Presumibilmente dovrai modificare la firma della funzione di implementazione, lascerò che qualcun altro ti aiuti.
Altri suggerimenti
Che dire seleziona il nodo corrente selezionando i dati rilevanti dal nodo corrente in un parametro XSL e passando quel parametro alla funzione?Come:
<xsl:value-of select="ourFunction($data)" />