搜索

首页  >  问答  >  正文

如何解决问题:确保文档根元素后的标记格式正确

<p>我将我的代码放在XML验证网站上,它给了我这个错误:</p> <blockquote> <p>第8行:4 根元素后的文档标记必须是格式良好的。</p> </blockquote> <p>出现问题的行是<code><xsl:output method = "html" doctype-system = "about:legacy-compat"/></code>。</p> <h2>XML</h2> <pre class="brush:php;toolbar:false;"><?xml version="1.0"?> <!-- Fig. 15.21: sorting.xsl --> <xsl:stylesheet version = "1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/> <!-- 写入XML声明和DOCTYPE DTD信息 --> *<xsl:output method = "html" doctype-system = "about:legacy-compat" />* <!-- 匹配文档根元素 --> <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> </xsl:template></pre> <p><br /></p>
P粉590428357P粉590428357468 天前564

全部回复(2)我来回复

  • P粉761718546

    P粉7617185462023-08-22 16:50:01

    这也可能是因为此文件中的空格错误而出现的

    回复
    0
  • P粉186904731

    P粉1869047312023-08-22 13:13:03

    通用情况

    此错误表示您的XML在根元素后面有标记。为了符合格式良好的要求,XML必须有仅有一个根元素,且在单个根元素之后不能有其他标记。

    一个根元素示例(正确)

    <r>
      <a/>
      <b/>
      <c/>
    </r>

    此错误最常见的原因是:

    1. 包含多余的闭合标签(错误):

      <r>
        <a/>
        <b/>
        <c/>
      </r>
      </r>  <!-- 不应该出现在这里 -->
    2. 有意地拥有多个根元素(错误):

      <a/>
      <b/>  <!-- 第二个根元素不应该出现在这里 -->
      <c/>  <!-- 第三个根元素不应该出现在这里 -->
    3. 无意中拥有多个根元素(错误):

      <r/>  <!-- 不应该是自闭合的 -->
        <a/>
        <b/>
        <c/>
      </r>
    4. 解析的XML与您认为的不同(错误):

      在提供给解析器之前,立即记录XML以确保解析器看到的XML与您认为的XML相同。这里常见的错误包括:

      • 传递给解析器的XML文档的文件名与您认为的不同。
      • XML缓冲区是脏的。确保在添加XML之前已清除。
      • 在管道中先前阶段的程序在解析之前更改了XML,导致出现此错误消息。

    您的特定问题

    在您的特定情况中,您的XML似乎有多个根元素,因为xsl:stylesheet元素过早关闭(上述情况#3)。

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>

    更改为

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    以解决您的即时问题,并添加一个闭合标签

    </xsl:stylesheet>

    如果您的实际文档中还不存在。

    回复
    0
  • 取消回复