18
我有一個xml文件,我使用lxml的etree來處理,但是當我添加標籤給它時,漂亮的打印似乎不起作用。lxml中的漂亮打印失敗當我添加標籤到解析的樹
>>> from lxml import etree
>>> root = etree.parse('file.xml').getroot()
>>> print etree.tostring(root, pretty_print = True)
<root>
<x>
<y>test1</y>
</x>
</root>
到目前爲止這麼好。但現在
>>> 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>
它不再漂亮。我還試圖在「創建z1標籤」的地方「向後」做,然後創建z標籤並將z1附加到它,然後將z標籤附加到x標籤。但是我得到了同樣的結果。
如果我沒有解析文件,只是一次創建所有標籤,它會正確打印。所以我認爲它與解析文件有關。
如何讓漂亮的打印工作?
好啊,這似乎是工作。我曾經看過這個FAQ的問題,但我想我錯了。我認爲這是說它應該只是如果你有文本數據與空白在其中,而我沒有。但是,如果你有任何帶有文本數據的_any_元素,我想這很重要。感謝您的快速解決。 –