Python:
XMLの扱い方

方法:

Pythonのxml.etree.ElementTreeモジュールは、XMLを扱うためのツールを提供しています。

XMLドキュメントを解析する:

import xml.etree.ElementTree as ET

xml_data = """<?xml version="1.0"?>
<library>
    <book>
        <title>Learning Python</title>
        <author>Mark Lutz</author>
    </book>
    <book>
        <title>Programming Python</title>
        <author>Mark Lutz</author>
    </book>
</library>
"""

root = ET.fromstring(xml_data)
for book in root.findall('book'):
    title = book.find('title').text
    author = book.find('author').text
    print(f'タイトル: {title}, 著者: {author}')

サンプル出力:

タイトル: Learning Python, 著者: Mark Lutz
タイトル: Programming Python, 著者: Mark Lutz

XMLドキュメントを作成する:

library = ET.Element('library')
book = ET.SubElement(library, 'book')
title = ET.SubElement(book, 'title')
title.text = 'Automate the Boring Stuff with Python'
author = ET.SubElement(book, 'author')
author.text = 'Al Sweigart'

tree = ET.ElementTree(library)
tree.write('library.xml')

深堀り:

XMLは、簡易なオンラインデータ共有のためにSGMLの単純化したサブセットとして90年代後半に作られました。ウェブデータにおけるJSONの人気が高まっているにもかかわらず、XMLは多くの企業、構成、およびウェブサービス(SOAP、RSS)にとって重要であり続けています。

xml.etree.ElementTreeの代替品には、lxmlminidomがあります。lxmlはより高速で機能豊富な一方で、minidomはより「DOMライク」なXMLインターフェイスを提供します。選択する際には、使いやすさ、パフォーマンス、特定の機能要件を考慮してください。

内部では、ElementTreeは要素ツリーモデル上で操作を行います。XMLファイルの各コンポーネントがツリー内のノードとなります。これにより、直感的なパス式や検索が可能となり、XMLデータの構造を容易にナビゲートおよび操作できます。

参照:

  • Python xml.etree.ElementTreeモジュール:https://docs.python.org/3/library/xml.etree.elementtree.html
  • lxml:https://lxml.de/
  • W3Schools XMLチュートリアル:https://www.w3schools.com/xml/
  • XML仕様:https://www.w3.org/XML/