Obtendo os dados XML dentro da função XPath personalizada
Pergunta
Existe uma maneira de obter os dados xml atuais quando criamos nossa própria função XPath personalizada (veja aqui).
Eu sei que você tem acesso a um XPathContext
mas isso é suficiente?
Exemplo:
Nosso XML:
<foo>
<bar>smang</bar>
<fizz>buzz</fizz>
</foo>
Nosso XSL:
<xsl:template match="/">
<xsl:value-of select="ourFunction()" />
</xsl:template>
Como obtemos toda a árvore XML?
Editar: Esclarecer:Estou criando uma função personalizada que acaba executando código Java estático (é um recurso saxão).Portanto, neste código Java, desejo obter elementos da árvore XML, como bar e fizz, e seus CDATA, como smang e buzz.
Solução
Tente alterar seu XSL para chamar 'ourFunction (/)'.Isso deve passar o nó raiz para a função.Você também pode tentar.ou ..
Presumivelmente, você precisará alterar a assinatura da função de implementação. Deixarei outra pessoa ajudar com isso.
Outras dicas
A respeito selecione o nó atual selecionando os dados relevantes do nó atual em um parâmetro XSL e passando esse parâmetro para a função?Como:
<xsl:value-of select="ourFunction($data)" />