KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have an xml file that I'm using etree from lxml to work with, but when I add tags to it, pretty printing doesn't seem to work. >>> from lxml import etree >>> root = etree.parse('file.xml').getroot() >>> print etree.tostring(root, pretty_print = True) <root> <x> <y>test1</y> </x> </root> So far so good. But now >>> x = root.find('x') >>> z = etree.SubElement(x, 'z') >>> etree.SubElement(z, 'z1').attrib['value'] = 'val1' >>> print etree.tostring(root, pretty_print = True) <root> <x> <y>test1</y> <z><z1 value="val1"/></z></x> </root> it's no longer pretty. I've also tried to do it "backwards" where I create the z1 tag, then create the z tag and append z1 to it, then append the z tag to the x tag. But I get the same result. If I don't parse the file and just create all the tags in one go, it'll print correctly. So I think it has something to do with parsing the file. How can I get pretty printing to work?
Tags (comma-separated)
Save Edits
Cancel