Привет У меня есть стили, что принимает параметр от ant xslt task
. Но параметр полон управляющие последовательностями, такие как <tag-name>
и т.д ... Вот сырьевое представление параметра $fileset-xml
: link, который является прямым выходом из этого:XSLT принимает escape-последовательности как параметр
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://saxon.sf.net/" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:param name="fileset-xml"/>
<!-- -->
<!-- -->
<xsl:template match="/theRoot">
<root>
<xsl:value-of select="$fileset-xml"/>
</root>
</xsl:template>
<!-- -->
<!-- -->
</xsl:stylesheet>
Моего намерение состоит в том, чтобы произвести вывод в xml, из этого параметра, но функция saxon:parse($fileset-xml)
не любит аргумент в этом формате. Я предполагаю, что если мы заменим escape-символы на их отображаемые значения, я получу допустимый XML-файл, но как это сделать?
Процессор saxonb9-1-0-8j
EDITION_1
Как apendx на комментарий @MartinHonnen:
Процессор:
<classpath location="../../infrastructure/SaxonEE9-7-0-11J/saxon9ee.jar:/net.sf.saxon.TransformerFactoryImpl"/>
XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:output method="xml" indent="yes"/>
<xsl:param name="fileset-xml"/>
<xsl:variable name="file-set-xml" select="parse-xml(parse-xml-fragment('<a/>'))"/>
<!-- -->
<!-- -->
<xsl:template match="/theRoot">
<root>
<xsl:copy-of select="$file-set-xml"/>
</root>
</xsl:template>
<!-- -->
<!-- -->
</xsl:stylesheet>
И ошибка:
[xslt] : Fatal Error! Error checking type of the expression 'funcall(parse- xml-fragment, [literal-expr(<a/>)])'. Cause: Error checking type of the expressi on 'funcall(parse-xml-fragment, [literal-expr(<a/>)])'.
Итак, какое сообщение об ошибке вы получите с помощью 'saxon: parse ($ fileset-xml)'? –
Это сообщение об ошибке не приходит из Saxon. С предыдущим вопросом, сообщающим очень похожее сообщение об ошибке здесь: http://stackoverflow.com/questions/15812382/getting-compile-error-while-using-format-date-method-in-xslt выяснилось, что проблема заключалась в том, что пользователь фактически запускал Xalan. –