XSL 禁用输出转义 XML SPY 与 SAXON

XSL disable-output-escaping XML SPY vs SAXON

我的 XSLT 需要帮助。

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

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

''

数据标签中的 returns html 个标签。

但在 SAXON 上执行此 XSL 不起作用。 XSL 被执行并 returns 输出,但输出转义似乎被忽略了。

有什么想法吗?

要记住的关键是 disable-output-escaping 是序列化程序的指令,除非 XSLT 处理器正在序列化输出,否则它不会产生任何影响。它“不工作”的最常见原因是转换输出将转到序列化程序以外的目的地(例如,DOM 树)。所以我们需要知道你是如何运行转型的。

同样与此相关的是,关于在写入临时树(即变量)时使用 disable-output-escaping 会发生什么情况的规范发生了变化。

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