У меня есть XSL, как показано нижеXSL - использование переменных в NodePath
<xsl:variable name="foo" select="concat('some','stuff')" />
<xsl:if test="$foo">
<xsl:element name="hello">
<xsl:attribute name="id">
<xsl:value-of select="-1"/>
</xsl:attribute>
<xsl:element name="region">
<xsl:value-of select="$foo/child"/> <!-- foo is variable, but always has a 'child' node -->
</xsl:element>
</xsl:element>
</xsl:if>
Я получаю ниже результат:
<hello id="-1">
и исключение:
java.lang.ClassCastException : org.apache.xpath.objects.XString несовместим с org.apache.xpath.objects.XNodeSet
что я делаю неправильно?
Я не думаю, что исключение исходит от вашего XSL. Покажите всю трассировку стека, а также ваш код Java, и четко обозначьте строку на Java, где выбрано исключение. Это основные требования к заданию вопросов об исключениях в StackOverflow. –
Я могу получить узел на выходе, он терпит неудачу в точной строке ' ' –
rgamber
Просьба представить минимальный воспроизводимый пример: input XML и XSL. Что говорит Java: '$ foo' кажется строкой, а не узлом. Но вы можете выбирать только детей из узлов, а не из строк. –