搜尋

首頁  >  問答  >  主體

如何解決問題:確保文件根元素後的標記格式正確

<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 天前561

全部回覆(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
  • 取消回覆