我想知道 Saxon-JS 处理包含 CDATA 元素的方式是否存在已知错误。
我有一个有效的 XSLT 3.0 和 XML 流程,其中包括从包含 CDATA 的元素中获取文本并在转换中应用 HTML 标记。我会尝试在不发布脚本的情况下提出问题。
我正在使用 Saxon-HE 9.8.0.3 并尝试使用最新的 Saxon-JS。从.xsl
文件转换为文件的所有内容都.sef
有效,除了从包含 CDATA 的元素中获取的文本的预期格式。
我有一个<docText>
只包含<![CDATA[ ... ]]>
封闭的多行文本的元素。
我用类似这样的方式调用模板:
<xsl:apply-templates select="ancestor::document/docText"/>
我匹配<xsl:template match="docText/text()">
包含在变量中的文本的最终操作<docText>
输出如下:
<xsl:value-of select="$step9-2" disable-output-escaping="yes" />
同样,当我从 Java 的命令行使用 Saxon-HE、XML 和 XSLT 3.0 的原始转换时,输出对于工作 HTML 标记是正确的。与 Saxon-JS 一起使用的转换脚本几乎相同,除了最初在 CDATA 部分中的文本格式外,所有逻辑都有效。文本已输出,但未格式化。
错误是否有任何原因可能是由于 Saxon-JS 处理或不处理 Saxon-HE 处理 CDATA 部分的方式?
迈克尔