Alex Rivera | Logout

Best way to generate xml?

Asked 2010-10-02T04:14:10.807
79

I'm creating an web api and need a good way to very quickly generate some well formatted xml. I cannot find any good way of doing this in python.

Note: Some libraries look promising but either lack documentation or only output to files.

Edit
Report

1 Answer

98

ElementTree is a good module for reading xml and writing too e.g.

from xml.etree.ElementTree import Element, SubElement, tostring

root = Element('root')
child = SubElement(root, "child")
child.text = "I am a child"

print(tostring(root))

Output:

<root><child>I am a child</child></root>

See this tutorial for more details and how to pretty print.

Alternatively if your XML is simple, do not underestimate the power of string formatting :)

xmlTemplate = """<root>
    <person>
        <name>%(name)s</name>
        <address>%(address)s</address>
     </person>
</root>"""

data = {'name':'anurag', 'address':'Pune, india'}
print xmlTemplate%data

Output:

<root>
    <person>
        <name>anurag</name>
        <address>Pune, india</address>
     </person>
</root>

You can use string.Template or some template engine too, for complex formatting.

answered 2010-10-02T05:03:51.613

Your Answer