minidomによるXML処理
minidomはDOMの最小実装でありPython標準モジュールの一部だ。
Python標準ライブラリでXMLを処理するならばElement Treeで十分であり、minidomを積極的に利用する場面は思い浮かばない。しかし標準ライブラリなので一応、使い方を調べてみた。
インストール
- 標準ライブラリなのでインストールは不要
import
- 名前が長いので「MD」とするのがプラクティス
import xml.dom.minidom as MD
読み込み
dom = MD.parse('test.xml')
Iterate
- 第1階層のキーのみを表示する
- 第2階層以下を表示したい場合はfor文をネストすること
for child in dom.childNodes: for node in child.childNodes: print(node.nodeName)
要素へのアクセス
- タグはnode.nodeNameでアクセス
- 属性はnode.getAttributeNode(属性名).nodeValueでアクセス
- 値はnode.firstChild.dataでアクセス
ids = dom.getElementsByTagName('id') id = ids.item(0) print(id.nodeName) print(id.getAttributeNode('tag').nodeValue) for elem in id.childNodes: print(elem.data) # or print(id.firstChild.data)
- タグ(エレメント)を探す
- 結果は配列なのでfor文、ids[0]、ids.item(0)などで目的のノードを取得すること
ids = dom.getElementsByTagName('id')
- ノードの子ノードを全て取得する
childs = id.childNodes