嗨,我有一個從ant xslt task
採取參數的樣式表。但參數是完全轉義序列,如<tag-name>
等等 這裏是參數的$fileset-xml
生表示:link與這直接輸出:XSLT採用轉義序列作爲參數
<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)
不喜歡此格式的參數。我猜如果我們用他們的渲染值替換轉義字符,我會得到一個有效的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)'獲得哪個錯誤信息? –
該錯誤消息不是來自撒克遜。前面的問題報告了一個非常類似的錯誤消息:http://stackoverflow.com/questions/15812382/getting-compile-error-while-using-format-date-method-in-xslt它出現了問題是用戶實際上正在運行Xalan。 –