ホームページ  >  記事  >  バックエンド開発  >  Python で XML をきれいに印刷する

Python で XML をきれいに印刷する

WBOY
WBOY転載
2023-09-07 19:41:02973ブラウズ

Python で XML をきれいに印刷する

Python で XML データを操作する場合、その可読性と構造を確保すると、コードの理解と保守性が大幅に向上します。 XML をきれいに印刷する、つまり適切なインデントと改行を使用して XML をフォーマットすることは、これらの目標を達成するための貴重なテクニックです。

この記事では、Python を使用して XML を整形印刷する 2 つの異なる方法、xml.dom.minidom と xml.etree.ElementTree を検討します。これらの方法を理解することで、開発者は XML データを組織的かつ視覚的に魅力的な方法で効果的に表現できるようになり、分析と操作が容易になります。

Python で XML をきれいに印刷するにはどうすればよいですか?

Python できれいな印刷を実行できる 2 つの方法を紹介します -

方法 1: xml.dom.minidom を使用する

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 つのスペース) を指定します。

  • 空白行の削除: デフォルトでは、`toprettyxml()` は出力に空白行を追加します。これらの空行を削除するには、きれいな XML 文字列を改行 (`\n`) で分割し、各行の先頭または末尾の空白を削除してから、空でない行を連結して戻します。
  • Print pretty XML: 最後に、生成された pretty XML 文字列を出力します。
  • 手順 2: xml.etree.ElementTree の使用

xml.etree.ElementTree を使用してきれいな印刷を実行する手順は次のとおりです -

    必要なモジュールをインポートします。最初に
  • `xml.etree.ElementTree`

    モジュールをインポートします。これは、XML の解析と操作のための高速かつ効率的な API を提供します。

  • 定義
  • `indent`

    関数: これは、XML 要素に再帰的にインデントを追加するために使用されるカスタム関数です。 `elem` パラメーター (XML 要素) と、オプションの `level` パラメーターを受け入れて、現在のインデント レベル (デフォルトは 0) を指定します。

  • インデント XML:
  • `indent`

    関数では、`text``tail` 要素のプロパティ。 `text` 属性は開始タグの直後のテキストを表し、`tail` 属性は終了タグの直前のテキストを表します。これらのプロパティにインデントを追加することで、きれいな印刷を実現します。

  • 定義
  • `pretty_print_xml_elementtree`

    関数: この関数は、XML 文字列を入力として受け取り、`xml.etree.ElementTree` を使用して XML を解析し、整形して出力します。

  • XML 文字列の解析:
  • `pretty_print_xml_elementtree`

    関数内で、`ET.fromstring()` メソッドを使用して XML 文字列を解析し、ElementTree オブジェクトを作成します。 。

  • インデント XML: XML のルート要素で
  • `indent()`

    関数を呼び出して、すべての要素に再帰的にインデントを追加します。

  • XML 要素を文字列に変換する:
  • `ET.tostring()`

    メソッドを使用して、XML 要素を文字列表現に変換します。結果の文字列が正しくエンコードされていることを確認するために、値 `"unicode"` を持つ `encoding` パラメーターを渡します。

  • Print pretty XML: 最後に、生成された pretty XML 文字列を出力します。
  • これら 2 つのプログラムは、XML をきれいに印刷するためのさまざまな方法を提供します。最初のプログラムは、
`xml.dom.minidom`

によって提供される 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)

手順 2: xml.etree.ElementTree の使用

リーリー

出力

<?xml version="1.0" ?>
<root>
  <element attribute="value">
   <subelement>Text</subelement>
  </element>
</root>
###結論は###

要約すると、Python で XML をきれいに印刷することは、XML データの読みやすさと構造を向上させるために非常に重要です。 xml.dom.minidom ライブラリと xml.etree.ElementTree ライブラリのどちらを使用する場合でも、開発者は適切なインデントを使用して XML を簡単にフォーマットできます。これらの手法を採用することで、プログラマーは Python プロジェクトで XML データを操作する際のコードの理解を強化し、デバッグを簡素化し、より良いコラボレーションを促進できます。

以上がPython で XML をきれいに印刷するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。