Lecture d'un fichier xml avec QXmlStreamReader
:salut:
J'ai un petit souci dans la lecture d'un fichier XML.
Voici un exemple (tiré de la FAQ Qt) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?xml version="1.0" encoding="UTF-8"?>
<office:document-content>
<site>
<nom>developpez</nom>
<url>www.developpez.com</url>
</site>
<contributeur>
<nom faq="c++">AAA</nom>
</contributeur>
<contributeur>
<nom faq="Qt">Toto</nom>
</contributeur>
</office:document-content> |
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| from PyQt5.QtCore import QFile, QXmlStreamReader
file = QFile('monfichier.xml')
file.open(QFile.ReadOnly | QFile.Text)
reader = QXmlStreamReader()
reader.setDevice(file)
reader.readNext()
while not reader.atEnd():
print(1)
reader.readNext() |
Sauf erreur de ma part, ce code devrait lire le fichier xml du début à la fin et de token en token. Tant que cette fin de fichier n'est pas atteinte on affiche 1, soit si je compte bien 8 fois.
Malheureusement chez moi le 1 ne s'affiche qu'une seule fois :weird:
Alors soit je passe à coté d'un truc tellement gros que je ne le vois pas, ça il y a un truc qui déconne.
Qu'en pensez vous ?
@+
J
[EDIT]
J'ai trouvé mon erreur... en fait elle vient de ma première boucle.
si je remplace office:document-content par root ou même par office:document-content xmlns:office="namespace", ça fonctionne mieux ;)
J'ai mis le doigt dessus en lisant la doc de Python et de son module xml.etree.ElementTree.
Ce qui m'amène a une autre interrogation : quelqu'un a-t-il déjà eu a comparer les deux versions (Qt ou Python) pour traiter du XML ?