Topic: lxml: modificare linea file xml  (Letto 1838 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Azz

  • python neanderthalensis
  • ****
  • Post: 294
  • Punti reputazione: 0
  • Apprendista Programmatore
    • Mostra profilo
lxml: modificare linea file xml
« il: Dicembre 06, 2009, 19:10 »
Ciao a tutti! Avrei bisogno di un consiglio:
vorrei modificare alcune linee di un file xml con lxml, ma mi trovo un po' bloccato. Come posso cercare le linee che mi interessano? Ad esempio, se la linea comincia con <ciao \>, come faccio a trovarla? E se volessi scrivere <ciao label="CIAO!" \>? Grazie!

Offline Bakuriu

  • python sapiens sapiens
  • ******
  • Post: 2.267
  • Punti reputazione: 2
  • Katon, Goukakyuu no jutsu!
    • Mostra profilo
    • Jack's Blackboard - Il mio blog
Re: lxml: modificare linea file xml
« Risposta #1 il: Dicembre 06, 2009, 19:45 »
Dipende...
Direi che dovresti leggerti la doc di lxml (qui per etree e qui per objectify)

Comunque in generale:

[hlpycode]
>>> from lxml import objectify
>>> from lxml.etree import SubElement
>>> from StringIO import StringIO
>>> f = StringIO("<root><ciao/></root>")
>>> document = objectify.parse(f)
>>> root = document.getroot()
>>> elemento_ciao = root.ciao
>>> nuovo_elemento = SubElement(root,"ciao",label="prova")
>>> root.replace(elemento_ciao,nuovo_elemento)
>>> nuovo_file = StringIO()
>>> document.write(nuovo_file,pretty_print=True)
>>> nuovo_file.seek(0)
>>> print nuovo_file.read()
<root>
  <ciao label="prova"/>
</root>
[/hlpycode]