\

Pythonのxml.etree.ElementTreeモジュールは、XMLデータの解析と作成のためのシンプルで効率的なAPIを実装しています。このモジュールは、利用可能な場合は高速な実装を使用します。

XMLツリーと要素

XMLは本質的に階層的なデータ形式であり、それを表現する最も自然な方法はツリーです。ElementTreeにはこの目的のための2つのクラスがあります。ElementTreeはXMLドキュメント全体をツリーとして表現し、Elementはこのツリーの単一のノードを表現します。

XMLの解析

以下のXMLドキュメントをこのセクションのサンプルデータとして使用します。

<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>

このデータをファイルからインポートすることができます。

import xml.etree.ElementTree as ET
tree = ET.parse('country_data.xml')
root = tree.getroot()

または、直接文字列からインポートすることもできます。

root = ET.fromstring(country_data_as_string)

fromstring()はXMLを直接文字列からElementに解析します。これは解析されたツリーのルート要素です。他の解析関数はElementTreeを作成するかもしれません。

XPathの利用

XPathはXMLドキュメント内の要素や属性を選択するための言語です。Pythonのxml.etree.ElementTreeモジュールは、XPathの一部の機能をサポートしています。しかし、完全なXPathのサポートは提供していません。

例えば、次のようにXPathを使用して特定の要素を選択することができます。

from elementtree.ElementTree import ElementTree
mydoc = ElementTree(file='tst.xml')
for e in mydoc.findall('/foo/bar'):
    print(e.get('title').text)

この記事はPythonのxml.etree.ElementTreeモジュールとXPathを使用したXML解析の基本的な概念と使用方法について説明しました。これらの知識を活用して、PythonでXMLデータの解析と操作を行うことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です