Comment corriger l'erreur: Le balisage dans le document suivant l'élément racine doit être bien formé
j'ai mis mon code dans le site de validation XML et il me donne cette erreur:
Ligne 8: 4 Le balisage dans le document suivant l'élément racine doit être bien formé.
la ligne qui a un problème est la ligne <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>
1 réponses
cas général
Le balisage dans le document suivant l'élément racine doit être bien formé.
cette erreur indique que le balisage de votre XML suit l'élément racine. Pour être bien formé , XML doit avoir exactement un élément racine , et il ne peut pas y avoir d'autre markup suivant le seul élément racine.
Un exemple d'élément racine (BON)
<r>
<a/>
<b/>
<c/>
</r>
les sources les plus courantes de cette erreur sont:
-
y compris les étiquettes "stray" ou "extra close" (mauvais):
<r> <a/> <b/> <c/> </r> </r> <!-- shouldn't be here -->
-
"ayant intentionnellement plusieurs éléments racinaires (mauvais):
<a/> <b/> <!-- second root element shouldn't be here --> <c/> <!-- third root element shouldn't be here -->
-
ayant involontairement plusieurs éléments de racine (mauvais):
<r/> <!-- shouldn't be self-closing --> <a/> <b/> <c/> </r>
-
Parsing XML différents que vous le pensez (MAUVAIS):
Enregistrer le XML immédiatement avant de fournir à la parse qui est à défaut afin de s'assurer que le XML que l'analyseur est voir est le même que le XML que vous pensez voir. Commun erreur
- le nom du fichier du document XML transmis au analyseur diffère de ce que vous croyez qu'il est.
- le tampon du XML étant sale. Assurez-vous de l'été effacé avant d'ajouter votre XML.
- un programme antérieur d'une étape antérieure dans votre pipeline changer le XML avant l'analyse qui donne ce message d'erreur.
votre problème particulier
dans votre cas particulier, votre XML semble avoir plusieurs éléments racine parce que l'élément xsl:stylesheet
est fermé prématurément (case #3 ci-dessus).
Changement
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>
à
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
pour corriger votre problème immédiat, et ajouter une étiquette de fermeture,
</xsl:stylesheet>
si un n'existe pas déjà dans votre propre document.