【问题标题】:xslt output character "
"xslt 输出字符“”
【发布时间】:2016-08-22 10:41:26
【问题描述】:

在我的一个用例中,我的 XSLT 2.0 转换(由 Saxon 和 JAVA 提供支持)在我的输出中无论遇到空格或换行符都会生成额外的 
 字符。

但是,当使用 XSLT 1.0(由 libXSLT 和 Perl 提供支持)完成相同的转换时,它不会在输出中得到这个特定的字符。

我已经提到过这个query,它解释了 SAXON 本质上为往返序列化了这些特殊字符。

我的问题是,为什么 XSLT 1.0 的行为不同?

【问题讨论】:

    标签: xml xslt xslt-1.0 xslt-2.0


    【解决方案1】:

    我认为 1999 年的 XSLT 1.0 比 XML 1.1 更早,XML 1.1 需要在 https://www.w3.org/TR/xml11/#sec-line-ends 中对该字符进行规范化,而 XML 1.0 https://www.w3.org/TR/xml/#sec-line-ends 不涵盖该字符。 https://www.w3.org/TR/xslt-xquery-serialization/#xml-output 中概述的 XSLT 2.0 的序列化规则确实考虑了 XML 1.1,而较旧的 XSLT 1.0 则没有。

    【讨论】:

    • .....一个快速跟进的问题。我应该在哪里指定 version 1.1 ? A] XSLT 文件头 2] xslt:stylesheet version 或 3] 在生成输出文件的位置,即exsl:document version,以便我可以正确生成字符引用?
    • 我不建议指定1.1版本,我只是想推测一下spec的发展历史。我看不出exsl:document 与它以及 Saxon 9 和 XSLT 2.0 有什么关系。您可能想提出一个新问题并详细说明或编辑该问题,并提供输入、XSLT、想要的结果和当前结果的详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多