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.
Extensible Markup Language(XML), is a markup language that you can use to create your own tags.
The XML Generator is a powerful tool for automatically generating XML instance documents which conform to any XML Schema data model. (illustrated below - click to enlarge). The generation of the sample XML files can be customized according to your preferences, and always results in valid, well-formed XML.
Using lxml:
from lxml import etree  # create XML  root = etree.Element('root') root.append(etree.Element('child')) # another child with text child = etree.Element('child') child.text = 'some text' root.append(child)  # pretty string s = etree.tostring(root, pretty_print=True) print s   Output:
<root>   <child/>   <child>some text</child> </root>   See the tutorial for more information.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With