Question

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

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 obtient-on l'intégralité de l'arborescence XML?

Modifier: Pour préciser: je crée une fonction personnalisée qui exécute ensuite du code Java statique (c'est une fonctionnalité saxonne). Ainsi, dans ce code Java, je souhaite pouvoir obtenir des éléments de l’arborescence XML, tels que bar et fizz, et leur CDATA, tels que smang et buzz.

Était-ce utile?

La solution

Essayez de changer votre XSL pour appeler "notreFonction (/)". Cela devrait transmettre le nœud racine à la fonction. Tu pourrais aussi essayer. ou ..

Vous aurez probablement besoin de changer la signature de la fonction d'implémentation, je laisserai quelqu'un d'autre vous aider.

Autres conseils

Qu'en est-il de sélectionner le noeud actuel en sélectionnant les données pertinentes du noeud actuel dans un paramètre XSL et en transmettant ce paramètre à la fonction? J'aime:

<xsl:value-of select="ourFunction($data)" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top