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`) で分割し、各行の先頭または末尾の空白を削除してから、空でない行を連結して戻します。 -
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 文字列を出力します。 -
によって提供される 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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。
