12
votes

XML analysant en python

J'aimerais analyser un simple fichier XML simple à l'aide de Python, cependant, les travaux sur PyXML semblent avoir cessé. Je voudrais utiliser Python 2.6 si possible. Quelqu'un peut-il recommander un analyseur XML qui fonctionnera avec 2,6?

merci


0 commentaires

5 Réponses :


19
votes

Si c'est petit et simple, alors juste Utilisez la bibliothèque standard :

from xml.dom.minidom import parse
doc = parse("filename.xml")


0 commentaires

3
votes

serait lxml convient à vos besoins? C'est le premier outil que je me tourne vers l'analyse XML.


1 commentaires

De plus, Python 2.5+ a Etree intégré. Il met en œuvre ce qui constitue un sous-ensemble de LXML. J'utilise etree pour un traitement XML simple et LXML lorsque j'ai besoin de quoi que ce soit que etree ne couvre pas bien.



5
votes

ici est également un très bon exemple sur la manière d'utiliser minidom avec des explications .


2 commentaires

Le lien semble rediriger vers la page d'accueil sans www devant elle. Ceci est un lien de travail: DiveintTyThon.net/xml_processing/index.html


Correction du lien. Merci!



1
votes

Il y a quelques années, j'ai écrit une bibliothèque pour travailler avec structuré xml. Il rend XML plus simple en faisant des hypothèses limitantes.

Vous pouvez utiliser XML pour quelque chose comme un document de processeur de mots, auquel cas avez-vous une soupe compliquée de trucs avec des étiquettes XML intégrées partout à la place; Dans quel cas ma bibliothèque ne serait pas bonne.

Mais si vous utilisez XML pour quelque chose comme un fichier de configuration, ma bibliothèque est plutôt pratique. Vous définissez des classes décrivant la structure du XML que vous souhaitez, et une fois que vous avez effectué les cours, il existe une méthode pour Slurp dans XML et analyser. L'analyse réelle est effectuée par xml.dom.minidom, mais ma bibliothèque extrait les données et la met dans les classes.

La meilleure partie: vous pouvez déclarer un type "collection" qui sera une liste Python avec zéro ou plusieurs autres éléments XML à l'intérieur. C'est génial pour des choses comme des flux Atom ou RSS (qui était la raison originale que j'ai conçue la bibliothèque).

Voici l'URL: http://home.avvanta.com/~steveha/xe.html

Je serais heureux de répondre aux questions si vous en avez.


0 commentaires

6
votes

Pour la plupart de mes tâches, j'ai utilisé la mise en œuvre de la Minidom Lightweight Dom, de la page officielle:

from xml.dom.minidom import parse, parseString

dom1 = parse('c:\\temp\\mydata.xml') # parse an XML file by name

datasource = open('c:\\temp\\mydata.xml')
dom2 = parse(datasource)   # parse an open file

dom3 = parseString('<myxml>Some data<empty/> some more data</myxml>')


0 commentaires