Il mio programma legge fondamentalmente un file di input, crea un file lxml.etree da quel file, che ad esempio aggiungo un nodo all'Eree e quindi voglio stamparlo su un file. Quindi, per scrivere di nuovo su un file che uso:Formattazione dell'output come XML con lxml
et.write('Documents\Write.xml', pretty_print=True)
E l'uscita che ho è:
<Variable Name="one" RefID="two"><Component Type="three"><Value>four</Value></Component></Variable>
Mentre mi piacerebbe qualcosa di simile:
<Variable Name="one" RefID="two">
<Component Type="three">
<Value>four</Value>
</Component>
</Variable>
Dove am Mi sbaglio? Ho provato molte soluzioni ma nessuna sembra funzionare (beautifulsoup, ordinata, parser ...)
potrebbe essere collegato a Windows? Se provi ad aprire il tuo file di output con il modulo 'io':' fp = io.open ('Documents \ Write.xml', 'w', newline = '\ r \ n') e poi'write a 'fp 'come quello' et.write (fp, pretty_print = True) ' (Vedi http://docs.python.org/2/library/io.html#io.open) –
Ciao Paul, sto provando quello che dice ma cos'è la fp? Il file che voglio scrivere? Scusa, sono un principiante! – JAWE
Solo un puntatore di file che rappresenta il file che si desidera scrivere, sì. 'et.write()' può prendere come input un nome file o un puntatore a file aperto, come qualcosa proveniente da 'io.open' (http://lxml.de/api/lxml.etree._ElementTree-class.html#write). Puoi provare 'import io' quindi' et.write (io.open ('Documents \ Write.xml', 'w', newline = '\ r \ n'), pretty_print = True) ' –