【问题标题】:xml, html or xhtml in <xsl:output>: Which is the better choice?<xsl:output> 中的 xml、html 或 xhtml:哪个是更好的选择?
【发布时间】:2010-12-26 17:59:09
【问题描述】:

由于历史原因,我们混合了

<xsl:output method="xml">

<xsl:output method="html">

<xsl:output method="xhtml">

在 XSL 文件的包含层次结构中。现在我们要重构,以便所有 XSL 文件使用相同的输出方法。

最后我们想要生成 XHTML 输出,所以我想后者是最好的选择。

但是这三种输出方法之间有什么区别,你会使用哪种解决方案呢?

编辑:我使用的是 XSLT 2.0

【问题讨论】:

    标签: xml xslt xslt-2.0


    【解决方案1】:

    据我所知,xslt 1.0 中的xsl:output 指令没有method:xhtml

    wc3schools同意这一点。

    因为 XHTML 是一种 XML 方言,所以我会使用它。

    如果您使用的是xslt 2.0,不妨使用xhtml,因为这就是您要输出的内容。

    【讨论】:

      【解决方案2】:

      HTML 将序列化为 HTML,因此输出可能不是格式正确的 XML。如果您只是发送到浏览器并且不关心能否解析为 XML,那么这可能对您有用。

      XML 将序列化为 XML,因此输出格式正确,但使用该输出的浏览器可能会遇到一些问题。小东西,比如自动关闭 &lt;script /&gt;&lt;div /&gt; 元素。为了避免这个问题,你必须玩游戏,比如在元素内添加 cmets(例如&lt;script src="someJSFile.js"&gt;&lt;!--don't close my script tag --&gt;&lt;/script&gt;

      如果您有一个 XSLT 2.0 引擎并且想要格式良好的 HTML 输出而不必担心某些元素是如何序列化的,那么请使用 XHTML。

      【讨论】:

        【解决方案3】:

        我通过阅读 XSLT 2.0 规范 (XSLT 2.0 and XQuery 1.0 Serialization) 找到了答案。

        给定一个空的 XHTML 实例 内容模型不是的元素 EMPTY(例如,空标题或 段)序列化程序不得使用 最小化的形式。也就是说,它必须 输出&lt;p&gt;&lt;/p&gt; 而不是&lt;p /&gt;

        给定一个 XHTML 元素,其内容 模型是空的,序列化器必须 使用最小化的标签语法,对于 例如&lt;br /&gt;,作为替代 XML 允许的语法 &lt;br&gt;&lt;/br&gt; 在许多方面给出了不确定的结果 现有的用户代理。序列化器 必须在 尾随 />,例如&lt;br /&gt;, &lt;hr /&gt;<img src="karen.jpg" alt="Karen" />

        序列化程序不得使用实体 参考&amp;apos; 其中,虽然 在 XML 中合法,因此在 XHTML 中, 没有在 HTML 中定义,也不是 被所有 HTML 用户代理识别。

        序列化器应该输出命名空间 以某种方式声明 符合要求 XHTML DTD(如果可能的话)。这 XHTML 1.0 DTD 需要声明 xmlns="http://www.w3.org/1999/xhtml" 出现在 html 元素上,并且 仅在 html 元素上。这 序列化程序必须输出命名空间 符合的声明 中存在的命名空间节点 结果树,但必须避免 输出冗余命名空间 DTD 所在元素的声明 会使它们无效。

        这意味着答案是使用&lt;xsl:output method="xhtml"&gt;

        【讨论】:

        • 这毫无意义:XHTML 不是那种担心在没有空内容模型的情况下使用自动关闭的人...... HTML 解析器有一些问题......
        猜你喜欢
        • 2012-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-18
        • 2012-05-27
        • 2013-08-14
        • 2011-05-09
        • 2017-12-16
        相关资源
        最近更新 更多