PythonでXML解析をする方法は何ですか?
Pythonには、XMLファイルを解析するための多くの方法がありますが、代表的な方法はDOMとSAXの2つです。
- DOM方法を使用してXMLを解析する:DOM方法はXML文書全体をメモリに読み込み、木構造を構築し、ノードオブジェクトの属性やメソッドを使用してXMLファイルの内容にアクセスや変更を行うことができます。
- コード例:
- import xml.dom.minidom# XMLファイルを開く
dom = xml.dom.minidom.parse(‘example.xml’)# ルートノードを取得
root = dom.documentElement# 子ノードを取得
elements = root.getElementsByTagName(‘element’)# 子ノードをループ処理
for element in elements:
# ノードの属性を取得
attr = element.getAttribute(‘attr’)
print(attr)# ノードのテキストコンテンツを取得
text = element.firstChild.data
print(text) - XMLファイルを解析するためにSAX方法を使用すると、イベント駆動型の解析方法が可能となります。要素の開始、終了、およびデータなどのイベントを定義し、それぞれに対応するイベント処理メソッドをトリガーすることができます。
- サンプルコード:
- import xml.sax# イベントハンドラを定義する
class MyHandler(xml.sax.ContentHandler):
def startElement(self, name, attrs):
# 開始タグのイベント処理メソッド
print(“Start element:”, name)def endElement(self, name):
# 終了タグのイベント処理メソッド
print(“End element:”, name)def characters(self, content):
# 文字データのイベント処理メソッド
print(“Content:”, content)# パーサーを作成
parser = xml.sax.make_parser()# イベントハンドラを設定
handler = MyHandler()
parser.setContentHandler(handler)# XMLファイルを解析
parser.parse(‘example.xml’)
自分の必要に合った方法を選んでXMLを解析する方法は、上記の2つの一般的な方法です。