Cómo corregir el error: el marcado en el documento que sigue al elemento raíz debe estar bien formado
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>
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:
Incluyendo etiquetas perdidas o muy cercanas (BAD):
<r> <a/> <b/> <c/> </r> </r> <!-- shouldn't be here -->
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 -->
Tener involuntariamente múltiples elementos raíz (MALO):
<r/> <!-- shouldn't be self-closing --> <a/> <b/> <c/> </r>
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:stylesheet
elemento 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.