我用python生成了一個長而醜陋的XML字符串,並且我需要通過漂亮的打印機來過濾它以使其看起來更好。用於XML字符串的Python漂亮XML打印機
我發現this post爲python漂亮打印機,但我必須將XML字符串寫入一個文件以回讀使用的工具,我想要避免,如果可能的話。
對字符串有效的python漂亮工具有哪些?
我用python生成了一個長而醜陋的XML字符串,並且我需要通過漂亮的打印機來過濾它以使其看起來更好。用於XML字符串的Python漂亮XML打印機
我發現this post爲python漂亮打印機,但我必須將XML字符串寫入一個文件以回讀使用的工具,我想要避免,如果可能的話。
對字符串有效的python漂亮工具有哪些?
以下是如何從文本字符串到lxml的結構化數據類型解析。
from lxml import etree
xml_str = "<parent><child>text</child><child>other text</child></parent>"
root = etree.fromstring(xml_str)
print etree.tostring(root, pretty_print=True)
輸出:
<parent>
<child>text</child>
<child>other text</child>
</parent>
我使用lxml的圖書館,還有它的那樣簡單
>>> print(etree.tostring(root, pretty_print=True))
你可以使用任何etree
,您可以生成程序,或從文件中讀取做操作。
如果您正在使用DOM從的PyXML,它是
import xml.dom.ext
xml.dom.ext.PrettyPrint(doc)
打印到標準輸出,除非你指定一個備用流。
http://pyxml.sourceforge.net/topics/howto/node19.html
直接使用minidom命名,你要使用的toprettyxml()
功能。
http://docs.python.org/library/xml.dom.minidom.html#xml.dom.minidom.Node.toprettyxml
看起來像root和doc都是結構化數據,而不是字符串。感謝你的回答。 – prosseek 2010-10-20 00:13:13
如果你的xml作爲minidom節點存在,你可以使用'toprettyxml()'函數。如果它真的只是作爲一個字符串存在,你必須先分析它,然後再打印出來。 – 2010-10-20 00:16:46
的Python XML您使用的圖書館嗎? – 2010-10-20 00:06:10
@Paul:我使用「從xml.dom導入minidom」。 – prosseek 2010-10-20 00:07:46