PythonでXML文書をパースする際には、lxml
ライブラリを使用することが一般的です。このライブラリを使用すると、XPath(XML Path Language)を利用してXML文書内の要素を簡単に取得することができます。
まず、lxml
ライブラリをインストールする必要があります。以下のコマンドでインストールできます。
pip install lxml
次に、XML文書をパースし、特定の要素を取得する基本的なコードを示します。
from lxml import etree
# XML文書のパース
tree = etree.parse('books.xml')
# タグ名がbookの要素を取得
elements = tree.xpath('//book')
このコードでは、etree.parse
関数を使用してXML文書をパースし、xpath
メソッドを使用してタグ名がbook
の要素をすべて取得しています。
XPathを使用すると、要素のタグ名だけでなく、属性値や階層構造、位置、テキストなどを指定して要素を取得することも可能です。以下に、それぞれの方法を示します。
# 属性値がid="001"の要素を取得
elements = tree.xpath('//book[@id="001"]')
# book要素の子要素であるtitle要素を取得
elements = tree.xpath('//book/title')
# 2番目のbook要素を取得
elements = tree.xpath('//book[2]')
# title要素のテキストを取得
titles = tree.xpath('//title/text()')
# book要素のid属性の値を取得
ids = tree.xpath('//book/@id')
これらの方法を使用すると、XPathを使ってXML文書内の要素を簡単に取得することができます。是非、実際に試してみてください。