如何解决问题:确保文档根元素后的标记格式正确
P粉590428357
P粉590428357 2023-08-21 22:01:26
0
2
529
<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粉590428357
P粉590428357

全部回复(2)
P粉761718546

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

P粉186904731

通用情况

此错误表示您的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>

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!