Python ElementTree “aucun élément trouvé” exception
Bonne journée tout le monde.
Je suis en train de lire, analyser et utiliser un fichier xml à l'aide de ElementTree.
Données suivantes:
<level>
<leveldata>
<level name="hh" difficulty="Easy" lenght="3600">
<meteorite chance="4" speed="3" >
<image id="1">
<image id="2">
<image id="3">
<meteorite />
<meteorite chance="4" speed="3" >
<image id="4">
<image id="5">
<image id="6">
<meteorite />
<level />
<leveldata />
<meteorimages>
<meteor id="5" imagepath="res\meteorit_1.png">
<meteor id="5" imagepath="res\meteorit_2.png">
<meteor id="5" imagepath="res\meteorit_3.png">
<meteorimages />
<datasheet />
<level />
Malheureusement, je ElementTree donne une exception!!! Lire le fichier avec le code suivant:
import xml.etree.ElementTree as ET
***code***
tree = ET.parse("res\\data.xml")
root = tree.getroot()
Exception:
File "E:\blabla\core.py", line 26, in load_levelproperties
*tree = ET.parse("res\\data.xml")* File "E:\Programme(x86)\Python2.7x86\lib\xml\etree\ElementTree.py", line
1182, in parse
*tree.parse(source, parser)* File "E:\Programme(x86)\Python2.7x86\lib\xml\etree\ElementTree.py", line
657, in parse
*self._root = parser.close()* File "E:\Programme(x86)\Python2.7x86\lib\xml\etree\ElementTree.py", line
1654, in close
*self._raiseerror(v)* File "E:\Programme(x86)\Python2.7x86\lib\xml\etree\ElementTree.py", line
1506, in _raiseerror
***raise err xml.etree.ElementTree.ParseError: no element found: line 16, column 9***
Je ne peux pas comprendre quel est le problème, j'ai essayé de changer data.xml dans tous les sens possible, j'imagine, pas de différence. C'est toujours la dernière ligne du fichier!
Ce que je fais mal?
Merci!
Vous devez vous connecter pour publier un commentaire.
Vos balises ne sont pas fermées correctement. Par exemple, pour la fermeture d'une "météorite" de la balise, l'utilisation
</meteorite>
pas<meteorite />
.Vous XML n'est pas bien formé,
ElementTree
ne peut pas analyser - on dirait vraiment que c'est une partie d'un véritable document.Voici ce que vous obtiendrez si vous le formater: