Python XML: ParseError: junk après le document de l'élément
Essayer de parser un fichier XML ElementTree:
>>> import xml.etree.cElementTree as ET
>>> tree = ET.ElementTree(file='D:\Temp\Slikvideo\JPEG\SV_4_1_mask\index.xml')
J'obtiens l'erreur suivante:
Traceback (most recent call last): File "", line 1, in
Fichier "C:\Program
Files\Anaconda2\lib\xml\etree\ElementTree.py" de ligne, 611, dans init
auto.parse(fichier) File "", line 38, à analyser ParseError: indésirable après l'élément de document: ligne 3, colonne 0
Fichier XML commence comme ceci:
<?xml version="1.0" encoding="UTF-8" ?>
<Version Writer="E:\d\src\Modules\SceneSerialization\src\mitkSceneIO.cpp" Revision="$Revision: 17055 $" FileVersion="1" />
<node UID="OBJECT_2016080819041580480127">
<source UID="OBJECT_2016080819041550469454" />
<data type="LabelSetImage" file="hfbaaa_Bolus.nrrd" />
<properties file="sicaaa" />
</node>
<node UID="OBJECT_2016080819041512769572">
<source UID="OBJECT_2016080819041598947781" />
<data type="LabelSetImage" file="ifbaaa_Bolus.nrrd" />
<properties file="ticaaa" />
</node>
suivie par beaucoup d'autres nœuds.
Je ne vois pas une ordure dans la ligne 3, colonne 0? Je suppose que il doit y avoir une autre raison de l'erreur.
L' .fichier xml est généré par un logiciel externe MITK donc je suppose que devrait être ok.
De travail sur Win 7, 64 bits, VS2015, Anaconda
Aucun rapport avec la question, vous devriez envisager de s'échapper de la path de Windows chaîne littérale ("...\\...") ou utiliser des chaînes de caractères (r"...\...").
merci, d'accord. Le fait que dans d'autres parties du code.
OriginalL'auteur jdelange | 2016-08-09
Vous devez vous connecter pour publier un commentaire.
@Matthias Wiehl dit, ElementTree n'attend qu'un seul nœud racine et n'est pas XML bien formé, qui devrait être fixé à son origine.
Comme solution de contournement, vous pouvez ajouter un faux nœud racine du document.
OriginalL'auteur Martin Valgur
Le nœud racine de votre document (
Version
) est ouvert et fermé sur la ligne 2. L'analyseur ne s'attend pas à des nœuds après le nœud racine. La Solution est de supprimer de la clôture de la barre oblique.Comme l'a souligné correctement, le document n'est pas bien formé. Le logiciel qui a généré ce qui est cassé. Vous devez remplir un rapport de bogue.
OriginalL'auteur Matthias Wiehl
Essayez de réparer le document de ce genre. Fermer la
version
élément à la finCette solution fonctionne certes, mais le faire est sémantiquement incorrect.
OriginalL'auteur Mechanic