2009-10-21 11 views

Répondre

2
import xml.dom.minidom 
filename='abc.xml' 
doc = xml.dom.minidom.parse(filename) 
print doc.toxml() 

c = doc.getElementsByTagName("c") 
print c[0].toxml() 
c[0].childNodes[0].nodeValue = 'zip' 
print doc.toxml() 

def replace(tagname, newvalue): 
    '''doc is global, first occurrence of tagname gets it!''' 
    doc.getElementsByTagName(tagname)[0].childNodes[0].nodeValue = newvalue 
replace('c', 'zit') 

print doc.toxml() 

Voir minidom primer et API Reference.

# cat abc.xml 
<root> 
    <a> 
    <c>zap</c> 
    </a> 
    <b> 
    </b> 
</root> 
2

Bien sûr que c'est possible. Le module xml.etree.ElementTree vous aidera à analyser le code XML, à rechercher des points et à remplacer des valeurs.

Si vous en savez un peu plus sur le fichier XML que vous voulez modifier, vous pouvez probablement rendre la tâche un peu plus facile que si vous avez besoin d'écrire une fonction générique qui gérera n'importe quel fichier XML.

Si vous êtes déjà familier avec l'analyse DOM, il existe un paquet xml.dom à utiliser à la place de ElementTree.

Questions connexes