Пожалуйста, мне нужна помощь по работе с saxon api :) Я создаю конвейер с 2 XsltTransform того же самого xslt, и когда я запускаю transform, я получаю эту ошибку:
2019-01-24 11:32:15,673 [pool-2-thread-1] INFO e.s.e.x.XsltListener - file
2019-01-24 11:32:15,674 [pool-2-thread-1] INFO e.s.e.x.XsltListener - Error
XPDY0002 while evaluating xsl:message content: The context item for axis
step fn:root(...)/element() is absent
вот мой xslt:
<xsl:stylesheet exclude-result-prefixes="#all" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:variable name="supp" as="xs:string" select="root()/*/name()"/>
<xsl:template match="/">
<xsl:message select="$supp"/>
<file/>
</xsl:template>
первый XsltTransform работает нормально, но кажется, что у меня нет узла контекста во время второго запуска XstTransform.
Я использую:
transformer1.setSource(source) : source is a SAXSource
transformer1.setDestination(transformr2)
transformr2.setDestination(serialiser)
Согласно документации(XsltTransform.setInitialContextNode): это значение игнорируется в случае, когда XsltTransformer используется в качестве пункта назначения другого процесса.В этом случае начальный контекстный узел всегда будет узлом документа документа, который передается в это место назначения.
Спасибо за вашу помощь