Python で XML データを操作する場合、その可読性と構造を確保すると、コードの理解と保守性が大幅に向上します。 XML をきれいに印刷する、つまり適切なインデントと改行を使用して XML をフォーマットすることは、これらの目標を達成するための貴重なテクニックです。
この記事では、Python を使用して XML を整形印刷する 2 つの異なる方法、xml.dom.minidom と xml.etree.ElementTree を検討します。これらの方法を理解することで、開発者は XML データを組織的かつ視覚的に魅力的な方法で効果的に表現できるようになり、分析と操作が容易になります。
Python できれいな印刷を実行できる 2 つの方法を紹介します -
xml.dom.minidom を使用してきれいな印刷を実行する手順は次のとおりです -
必要なモジュールをインポートします。まず、XML 解析用のドキュメント オブジェクト モデル (DOM) API の軽量実装を提供する「xml.dom.minidom」モジュールをインポートします。
`pretty_print_xml_minidom` 関数を定義します。この関数は XML 文字列を入力として受け取り、`xml.dom.minidom` を使用して印刷用に XML を解析および整形します。
XML 文字列の解析: `pretty_print_xml_minidom` 関数内で、`xml.dom.minidom.parseString()` メソッドを使用して XML 文字列を解析し、DOM オブジェクトを作成します。
きれいに印刷される XML: 次に、DOM オブジェクトに対して「toprettyxml()」メソッドを使用して、きれいに印刷される XML 文字列を生成します。 「indent」パラメータに値「"」を渡して、必要なインデント レベル (この場合は 2 つのスペース) を指定します。
モジュールをインポートします。これは、XML の解析と操作のための高速かつ効率的な API を提供します。
関数: これは、XML 要素に再帰的にインデントを追加するために使用されるカスタム関数です。 `elem` パラメーター (XML 要素) と、オプションの `level` パラメーターを受け入れて、現在のインデント レベル (デフォルトは 0) を指定します。
関数では、`text` と `tail` 要素のプロパティ。 `text` 属性は開始タグの直後のテキストを表し、`tail` 属性は終了タグの直前のテキストを表します。これらのプロパティにインデントを追加することで、きれいな印刷を実現します。
関数: この関数は、XML 文字列を入力として受け取り、`xml.etree.ElementTree` を使用して XML を解析し、整形して出力します。
関数内で、`ET.fromstring()` メソッドを使用して XML 文字列を解析し、ElementTree オブジェクトを作成します。 。
関数を呼び出して、すべての要素に再帰的にインデントを追加します。
メソッドを使用して、XML 要素を文字列表現に変換します。結果の文字列が正しくエンコードされていることを確認するために、値 `"unicode"` を持つ `encoding` パラメーターを渡します。
によって提供される DOM API を利用して XML を解析し、整形出力します。一方、2 番目のプログラムは `xml.etree.ElementTree` モジュールを使用します。そして、XML 要素に再帰的にインデントを追加するカスタム関数を定義しました。 以下は上記 2 つの方法を使用したプログラム例です -
オプション 1: xml.dom.minidom を使用する
リーリーimport xml.dom.minidom def pretty_print_xml_minidom(xml_string): # Parse the XML string dom = xml.dom.minidom.parseString(xml_string) # Pretty print the XML pretty_xml = dom.toprettyxml(indent=" ") # Remove empty lines pretty_xml = "\n".join(line for line in pretty_xml.split("\n") if line.strip()) # Print the pretty XML print(pretty_xml) # Example usage xml_string = ''' <root> <element attribute="value"> <subelement>Text</subelement> </element> </root> ''' pretty_print_xml_minidom(xml_string)
<?xml version="1.0" ?> <root> <element attribute="value"> <subelement>Text</subelement> </element> </root>
以上がPython で XML をきれいに印刷するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。