Anshul
Anshul

Reputation: 7964

How do i parse a string in python and write it as an xml to a new xml file?

I have xml data in string format which is in variable xml_data

xml_data="<?xml version="1.0"?>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
</note>"

I want to save this data to a new xml file through python.

I am using this code:

from xml.etree import ElementTree as ET
tree = ET.XML(xml_data)

Now Here i want to create a xml file and save the xml tree to the file, but don't know which function to use for this.

Thanks

Upvotes: 15

Views: 40087

Answers (2)

Emna Jaoua
Emna Jaoua

Reputation: 381

In python 3.x The proposed solution won't work unless you specify with open("filename", "wb") as f: instead of with open("filename", "w") as f:

Upvotes: 6

Antti
Antti

Reputation: 12479

With ET.tostring(tree) you get a non-formatted string representation of the XML. To save it to a file:

with open("filename", "w") as f:
    f.write(ET.tostring(tree))

Upvotes: 17

Related Questions