Le document XML d’parsing syntaxique Java donne l’erreur «Contenu non autorisé dans prolog»

J’écris un programme en Java qui prend un fichier XML personnalisé et l’parsing. J’utilise le fichier XML pour le stockage. Je reçois l’erreur suivante dans Eclipse.

[Fatal Error] :1:1: Content is not allowed in prolog. org.xml.sax.SAXParseException: Content is not allowed in prolog. at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:239) at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283 ) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208) at me.ericso.psusoc.RequirementSatisfier.parseXML(RequirementSatisfier.java:61) at me.ericso.psusoc.RequirementSatisfier.getCourses(RequirementSatisfier.java:35) at me.ericso.psusoc.programs.RequirementSatisfierProgram.main(RequirementSatisfierProgram.java:23 ) 

Le début du fichier XML est inclus:

    Information Science and Technology BS  Information Systems: Design and Development Option   GWS GQ 

Le programme est capable de lire dans le fichier XML mais quand j’appelle DocumentBuilder.parse(XMLFile) pour obtenir un org.w3c.dom.Document analysé, j’obtiens l’erreur ci-dessus.

Il ne me semble pas que le contenu de mon fichier XML ne soit pas valide. Je n’arrive pas à comprendre ce qui ne va pas. S’il vous plaît aider. Merci.

S’il vous plaît vérifier le fichier XML si il a un caractère indésirable comme celui-ci. S’il existe, veuillez utiliser la syntaxe suivante pour le supprimer.

 Ssortingng XSsortingng = writer.toSsortingng(); XSsortingng = XSsortingng.replaceAll("[^\\x20-\\x7e]", ""); 

Je pense que c’est aussi une solution à ce problème.

Changez votre type de document de ‘Encoder en UTF-8’ en ‘Encoder en UTF-8 sans nomenclature’

J’ai résolu mon problème en effectuant les mêmes modifications.

Assurez-vous qu’il n’y a pas d’espaces cachés au début de votre fichier XML. Peut-être également inclure l’encodage = “UTF-8” (ou 16? Aucun indice) dans le nœud.

Le document me semble bien, mais je pense qu’il contient des caractères invisibles. Ouvrez-le dans un éditeur hexadécimal pour vérifier qu’il n’y a vraiment rien avant le tout premier “<". Assurez-vous que les espaces dans l'en-tête XML sont des espaces. Peut-être supprimer l'espace avant "?>“. Vérifiez quels sauts de ligne sont utilisés.

Assurez-vous que le document est correct UTF-8. Certains éditeurs Windows sauvegardent le document en UTF-16 (c.-à-d. Que chaque octet est égal à 0).

Je suppose que vous avez un encodage XML correct et une correspondance avec Schema.

Si vous obtenez toujours cette erreur, vérifiez le code qui supprime le xml et le type d’entrée que vous avez utilisé. Étant donné que les documents XML déclarent leur propre codage, il est préférable de créer un object StreamSource à partir d’un InputStream au lieu d’un lecteur, afin que le processeur XML puisse gérer correctement le codage déclaré [Référence: Java en bref]

J’espère que cela t’aides!

Vous ne fournissez pas la bonne adresse pour le fichier. Vous devez fournir une adresse telle que C:/Users/xyz/Desktop/myfile.xml

Si vous êtes en mesure de contrôler le fichier xml, essayez d’append un peu plus d’informations au début du fichier:

  

Vérifiez tout problème de syntaxe dans le fichier XMl. J’ai trouvé cette erreur lors de l’utilisation de xsl / xsp avec Cocoon et j’ai défini une variable à l’aide d’un nœud non existant ou quelque chose du genre. Vérifiez l’ensemble du XML.