0

我需要有关我的 XSLT 的帮助。

我有一个带有编码 HTML 标签的 XML,带有一个标签:

输入代码

使用 XmlSpy (Altova) 这确实有效:

'<xsl:value-of select="de" disable-output-escaping="yes"/>'

它在数据标签中返回 html 标签。

但是在 SAXON 上执行这个 XSL 是行不通的。XSL 被执行并返回输出,但输出转义似乎被忽略了。

有任何想法吗?

4

1 回答 1

1

要记住的关键是 disable-output-escaping 是对序列化程序的指令,除非 XSLT 处理器对输出进行序列化,否则它没有任何作用。它“不起作用”的最常见原因是转换输出将发送到序列化程序以外的目的地(例如,DOM 树)。所以我们需要知道你是如何进行转型的。

同样与此相关的是,如果在写入临时树(即变量)时使用禁用输出转义会发生什么,规范已经发生了变化。

处理器可以完全忽略禁用输出转义,但 Saxon 不会这样做,除非输出没有序列化。(那是因为“转义”是一个序列化的事情,如果你没有序列化,那么你就没有转义任何东西,所以没有什么可以禁用的)。

于 2020-09-25T17:37:39.060 回答