python: デフォルト機能でXMLを解析する
Python 3.9.6 で確認。 Pythonにデフォルトで備わっている xml.etree.ElementTree を用いることで簡易的なXML解析が可能。名前が長いので、公式ドキュメントでもエイリアスを使用している。 準備 必要なライブラリを import するには以下。 import xml . etree . ElementTree as ET ファイルから読み出すなら tree = ET . parse ( 'test_data.xml' ) root = tree . getroot ( ) あるいは文字列から読みだすなら root = ET . fromstring ( test_data_str ) という形でアクセスできる。 具体例 具体的な利用例を見てみる。例えば、 Yahooニュースの主要トピックRSS から主要なニュースを取り出し、表示してみる。 URLへのアクセスに requests を利用している。 pip install requests で導入可能。 import xml . etree . ElementTree as ET import requests res = requests . get ( 'https://news.yahoo.co.jp/rss/topics/top-picks.xml' ) # res.contentにデータが格納されている。 # データはUTF-8としてdecodeする必要がある。 root = ET . fromstring ( res . content . decode ( 'utf-8' ) ) items = root . findall ( './channel/item' ) for item in items : title = item . find ( 'title' ) . text print ( f '{title}' ) findall により、指定した XPath に該当する要素をすべて取り出すことができる。XPathは、 簡単に使う分にはXMLの木構造をディレクトリ構造の