2010-11-04 6 views
0

J'essaie juste de trouver un moyen simple d'ouvrir, d'éditer et d'enregistrer un fichier XML en utilisant python. Jusqu'à présent, j'ai réussi à ouvrir un fichier et à l'écrire en sortie.XML simple pour python?

Cependant, je n'ai pas réussi à l'imprimer facilement pour savoir ce qu'il y a dans un objet donné, traverser le modèle d'objet, éditer les balises et les attributs, ou écrire le xml dans un fichier.

from lxml import etree 
root = etree.parse('test.xml') 

print etree.tostring(root); 

Je suis habitué à utiliser simpleXML pour php, ce qui est un jeu d'enfant.

s'il vous plaît aider, comme je trouve la documentation difficile à comprendre :(

merci :)

+0

-1 Ce n'est pas une question. Une question va quelque chose comme "Comment puis-je [quelque chose de spécifique]? J'ai essayé X, mais Y n'a pas fonctionné/J'ai reçu le message d'erreur Z.". Et pour votre information, lxml * est * la meilleure et la plus simple bibliothèque XML pour Python. Je ne sais vraiment pas quelles réponses vous attendez ... – delnan

+0

J'espérais soit une explication rapide et facile pour savoir comment faire cela en utilisant le xml, ou une meilleure alternative. simpleXML en php traite simplement le dom comme un objet (ce que semble faire aussi beautifulsoup). cependant je ne peux pas trouver une manière simple d'ouvrir, d'éditer et d'enregistrer un dossier de xml malgré une bonne tentative aux docs de lxml. désolé la question n'est pas plus précise! – significance

+0

J'ai mis à jour ma réponse. – user225312

Répondre

4

Le tutoriel lxml est agréable et facile à comprendre. Vérifiez-le here et faites un essai. Il faut du temps pour s'y habituer, mais comme pour tout, les étapes initiales sont difficiles.

Un autre excellent tutoriel (et référence) que je recommande est le tutoriel par John Shipman. Vous devriez sérieusement le lire.

Je recommande: Lire le tutoriel et le livre de Shipman. Ensuite, essayez d'analyser des fichiers XML simples.

lxml vaut la peine d'être étudié. Une fois que vous l'apprendrez, vous l'aimerez. PS: Tout ce que j'ai dit est basé sur mon expérience personnelle.

EDIT: Basé sur votre commentaire, vous devriez utiliser this au lieu de lxml alors. Here est un tutoriel facile à comprendre.

+0

DOM en général est très lourd, l'implémentation de Python en comparaison avec les implémentations ElementTree doublement donc ... – delnan

+0

@delnan: J'ai suggéré lxml mais il semble aversif à cela. – user225312

+0

Et oui, lxml est beaucoup plus facile. Que je suis d'accord. – user225312

2

donner un essai à Amara, il est très simple:

import amara 
doc = amara.parse('monty.xml') 
doc.monty.foo = u'bar' 
doc.monty.spam = u'[attr modified]' 
print doc.monty.foo 
+0

cela pourrait être ce que je cherche ... savez-vous comment écrire le xml modifié en monty.xml? – significance

+0

doc.xml (open ('monty.xml', 'w')) –