Python 3でXMLを解析し、特定のノード属性のインスタンスを取得する方法

PYTHON3 チュートリアル

Pythonを使用したXMLの解析と特定の属性を持つノードの取得方法

PythonでXMLファイルを解析し、特定の属性を持つノードを取得する方法について説明します。ここでは、xml.etree.ElementTreeモジュールを使用して、属性”name”が特定の値を持つノードを探します。

準備: XMLファイルの読み込み

まず、xml.etree.ElementTreeモジュールをインポートし、解析したいXMLファイルを読み込みます。以下の例では、”sample.xml”という名前のファイルを読み込んでいます。

import xml.etree.ElementTree as ET

# XMLファイルを読み込む
tree = ET.parse('sample.xml')
root = tree.getroot()

ステップ1: 特定の属性を持つノードの検索

次に、”name”属性が特定の値を持つすべてのノードを見つけます。findallメソッドを使用して、条件に合致するノードを探索します。以下の例では、”name”属性が”example”であるノードを探しています。

# "name"属性が"example"であるノードをすべて見つける
for element in root.findall(".//*[@name='example']"):
    print("Found:", element.tag)

ステップ2: ノードの詳細情報の取得

ノードが見つかったら、そのノードの他の属性やテキスト内容を取得することができます。以下のコードでは、見つかったノードのタグ名、属性、テキスト内容を表示します。

# 見つかったノードの詳細情報を表示
for element in root.findall(".//*[@name='example']"):
    print("Tag:", element.tag)
    print("Attributes:", element.attrib)
    print("Text:", element.text)

出力例

上記のスクリプトを実行すると、以下のような出力が得られます。これは、”name”属性が”example”であるノードが見つかった場合の例です。

Found: item
Tag: item
Attributes: {'name': 'example', 'type': 'sampleType'}
Text: This is an example text.

この方法を用いることで、Pythonを使用してXMLファイル内の特定の属性を持つノードを簡単に見つけ出し、その情報を取得することが可能です。

購読
通知
0 Comments
Inline Feedbacks
View all comments