2008-09-16 7 views
4

Existe-t-il un moyen d'obtenir les données XML actuelles lorsque nous créons notre propre fonction XPath personnalisée (voir ici).Obtention des données XML dans la fonction XPath personnalisée

Je sais que vous avez accès à un XPathContext mais est-ce suffisant?

Exemple:

Notre XML:

<foo> 
    <bar>smang</bar> 
    <fizz>buzz</fizz> 
</foo> 

Notre XSL:

<xsl:template match="/"> 
    <xsl:value-of select="ourFunction()" /> 
</xsl:template> 

Comment pouvons-nous l'ensemble de l'arborescence XML?

Editer: Pour clarifier: Je crée une fonction personnalisée qui finit par exécuter du code Java statique (c'est une fonctionnalité de Saxon). Donc, dans ce code Java, je souhaite pouvoir obtenir des éléments de l'arborescence XML, tels que bar et fizz, et leurs CDATA, tels que smang et buzz.

Répondre

1

Essayez de changer votre XSL pour que vous appeliez 'notreFonction (/)'. Cela devrait passer le nœud racine à la fonction. Vous pourriez aussi essayer. ou ..

Vous aurez probablement besoin de changer la signature de la fonction de mise en œuvre, je vais laisser quelqu'un d'autre aider avec cela.

1

Qu'en est-il sélectionnez le nœud actuel en sélectionnant les données pertinentes du nœud actuel dans un paramètre XSL, et en passant ce paramètre à la fonction? Comme:

<xsl:value-of select="ourFunction($data)" /> 
Questions connexes