Python で長くて醜い XML 文字列を生成したので、見栄えを良くするためにきれいなプリンターでフィルター処理する必要があります。
Python pretty printers に関するこの投稿を見つけましたが、XML 文字列をファイルに書き込んで、ツールを使用するために読み戻す必要があるため、可能であれば避けたいと考えています。
文字列で動作する Python プリティ ツールには、どのようなものがありますか?
Python で長くて醜い XML 文字列を生成したので、見栄えを良くするためにきれいなプリンターでフィルター処理する必要があります。
Python pretty printers に関するこの投稿を見つけましたが、XML 文字列をファイルに書き込んで、ツールを使用するために読み戻す必要があるため、可能であれば避けたいと考えています。
文字列で動作する Python プリティ ツールには、どのようなものがありますか?
テキスト文字列から lxml 構造化データ型に解析する方法を次に示します。
パイソン 2:
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)
パイソン 3:
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).decode())
出力:
<parent>
<child>text</child>
<child>other text</child>
</parent>
私はlxmlライブラリを使用していますが、それは次のように簡単です
>>> print(etree.tostring(root, pretty_print=True))
etree
プログラムで生成するか、ファイルから読み取ることができるany を使用して、その操作を行うことができます。
PyXML の DOM を使用している場合は、
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