Cómo corregir el error: el marcado en el documento que sigue al elemento raíz debe estar bien formado

Resuelto Mereinid asked hace 7 años • 2 respuestas

Puse mi código en el sitio web de validación XML y me da este error:

Línea 8: 4 El marcado en el documento que sigue al elemento raíz debe estar bien formado.

La línea que tiene problemas es la <xsl:output method = "html" doctype-system = "about:legacy-compat"/>línea .

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>
Mereinid avatar Sep 22 '17 08:09 Mereinid
Aceptado

Caso general

El marcado en el documento que sigue al elemento raíz debe estar bien formado.

Este error indica que su XML tiene marcado después del elemento raíz. Para estar bien formado , XML debe tener exactamente un elemento raíz y no puede haber más marcas después del único elemento raíz.

Un ejemplo de elemento raíz (BUENO)

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

Las fuentes más comunes de este error son:

  1. Incluyendo etiquetas perdidas o muy cercanas (BAD):

    <r>
      <a/>
      <b/>
      <c/>
    </r>
    </r>  <!-- shouldn't be here -->
    
  2. Tener intencionalmente múltiples elementos raíz (MALO):

    <a/>
    <b/>  <!-- second root element shouldn't be here -->
    <c/>  <!-- third root element shouldn't be here -->
    
  3. Tener involuntariamente múltiples elementos raíz (MALO):

    <r/>  <!-- shouldn't be self-closing -->
      <a/>
      <b/>
      <c/>
    </r>
    
  4. Analizando XML diferente de lo que piensas (MALO):

    Registre el XML inmediatamente antes de enviarlo al análisis que falla para asegurarse de que el XML que ve el analizador sea el mismo que el XML que cree que está viendo. Los errores comunes aquí incluyen:

    • El nombre de archivo del documento XML que se pasa al analizador difiere de lo que usted cree que es.
    • El buffer del XML está sucio. Asegúrese de que se haya borrado antes de agregar su XML.
    • Un programa anterior de una etapa anterior de su proceso que cambia el XML antes del análisis genera este mensaje de error.

Tu problema particular

En su caso particular, su XML parece tener múltiples elementos raíz porque el xsl:stylesheetelemento se cierra prematuramente (caso n.° 3 anterior).

Cambiar

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

a

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

para solucionar su problema inmediato y agregar una etiqueta de cierre,

</xsl:stylesheet>

si aún no existe uno en su documento real.

kjhughes avatar Sep 22 '2017 01:09 kjhughes