如何修复错误:文档中根元素后面的标记必须格式正确

问题描述 投票:0回答:3

我将代码放入 XML 验证网站,它给了我这个错误:

第 8 行:4 文档中根元素后面的标记必须格式正确。

有问题的线路是

<xsl:output method = "html" doctype-system = "about:legacy-compat"/>
线路。

XML

<?xml version="1.0"?>

<!-- Fig. 15.21: sorting.xsl -->
<xsl:stylesheet version = "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>

<!-- write XML declaration and DOCTYPE DTD information -->
*<xsl:output method = "html" doctype-system = "about:legacy-compat" />*

 <!-- match document root -->
 <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> 
 </xsl:template>
xml xslt xml-parsing xml-validation
3个回答
55
投票

一般情况

文档中根元素后面的标记必须格式正确。

此错误表明您的 XML 在根元素后面有标记。 为了成为格式良好,XML 必须具有恰好一个根元素,并且在单个根元素之后不能有进一步的标记。

一个根元素示例(好)

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

此错误最常见的来源是:

  1. 包括杂散或额外的闭合标签(不好):

    <r>
      <a/>
      <b/>
      <c/>
    </r>
    </r>  <!-- shouldn't be here -->
    
  2. 故意拥有多个根元素(不好):

    <a/>
    <b/>  <!-- second root element shouldn't be here -->
    <c/>  <!-- third root element shouldn't be here -->
    
  3. 无意中拥有多个根元素(BAD):

    <r/>  <!-- shouldn't be self-closing -->
      <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
投票

直接在项目中打开background_splash.xml文件(位于res/drawable或res/layout文件夹中)并确保该标签不存在于其中。确保正确保存,没有任何不需要的标签。


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.