Erreur: La déclaration XML doit être le premier nœud dans le document
Je suis de la "déclaration XML Inattendue. La déclaration XML doit être le premier nœud dans le document, et aucun caractère d'espace blanc est autorisé à comparaître devant elle" erreur lors de la tentative de charger le fichier xml. Mon code C# et le contenu du fichier XML sont donnés ci-dessous. Définition XML existe dans la Ligne 6 du fichier xml et d'où l'erreur.
Je ne peux pas contrôler ce qu'il y a dans le fichier xml alors, comment puis-je modifier/réécrire à l'aide de C#, tels que la déclaration xml vient en premier, et ensuite les commentaires pour le charger sans aucune erreur!
//xmlFilepath is the path/name of the xml file passed to this function
static function(string xmlFilepath)
{
XmlReaderSettings readerSettings = new XmlReaderSettings();
readerSettings.IgnoreComments = true;
readerSettings.IgnoreWhitespace = true;
XmlReader reader = XmlReader.Create(XmlFilePath, readerSettings);
XmlDocument xml = new XmlDocument();
xml.Load(reader);
}
XmlDoc.xml
<!-- Customer ID: 1 -->
<!-- Import file: XmlDoc.xml -->
<!-- Start time: 8/14/12 3:15 AM -->
<!-- End time: 8/14/12 3:18 AM -->
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
-----
De quelle aide avez-vous envie? Le message d'erreur est vous dire quel est le problème.
Je crois que
Est-il un moyen de modifier le fichier xml tels que la définition qui vient en premier et ensuite les commentaires à l'aide de c#, de sorte que je peux charger le document xml pour la poursuite du traitement..
C'est à partir de IEX n'est-ce pas? Je viens de croiser la même chose. Frustrant.
Je crois que
<?...?>
doit être avant les commentaires. Commentant la syntaxe est la partie de la spécification XMLEst-il un moyen de modifier le fichier xml tels que la définition qui vient en premier et ensuite les commentaires à l'aide de c#, de sorte que je peux charger le document xml pour la poursuite du traitement..
C'est à partir de IEX n'est-ce pas? Je viens de croiser la même chose. Frustrant.
OriginalL'auteur user841311 | 2012-08-14
Vous devez vous connecter pour publier un commentaire.
Que les états d'erreur, les cinq premiers caractères d'un document XML doit être
<?xml
. Pas ifs, ands, ou de mais. Les commentaires que vous avez au-dessus de l'ouverture de la balise XML sont illégales, ils doivent aller à l'intérieur de la balise XML (car l'observation de la structure est elle-même définie par la norme XML et est donc vide de sens en dehors de la principale balises XML).EDIT: quelque Chose comme cela devrait être en mesure de réorganiser les lignes, étant donné le format de fichier de l'OP:
Oui, vous devez ouvrir le fichier à l'aide d'un simple FileStream, de le lire avec un TextReader pour extraire le SQL brut, de réorganiser les lignes du fichier de sorte que le
<?xml ... ?>
balise est d'abord, et ensuite l'écrire, avant de la tirer dans le XmlReader.Merci Keith! J'ai déjà essayé ta suggestion, mais ne réussissent pas à ré-organiser les lignes du fichier, donc si vous pouvez m'aider avec ce code, il serait d'une grande aide pour moi.
voir modifier.
Parfait Keith! Il fonctionne comme un charme! Merci beaucoup pour la réponse rapide, tandis que d'autres ont tout simplement ignoré.
OriginalL'auteur KeithS
Qui n'est pas valide XML.
Que l'erreur indique clairement, la déclaration XML (
<?xml ... ?>
) doit venir première.OriginalL'auteur SLaks
Je suis en utilisant la fonction suivante pour supprimer l'espace à partir de xml:
OriginalL'auteur Misheeta
Ne mettez pas de commentaires au début de votre fichier!
OriginalL'auteur MacGyver