三日月館【別館】開発・制作Tips集
[Python] ElementTreeによるXML読み込みチートシート
最終更新:
fumiduki1985
-
view
いずれのコードサンプルも、下記インポートが行われている前提。
import xml.etree.ElementTree as ET
■XMLファイルからElementTreeオブジェクトを作成
tree = ET.parse('test.xml')
■ElementTreeオブジェクトからルート要素のElementオブジェクトを取得
root = tree.getroot() # treeはElementTreeオブジェクト
■XPathによるノードの検索
find()メソッドなら最初にヒットした要素を表すElementオブジェクトを取得する。
いずれも検索にヒットしない場合はNoneを返す。
find()メソッドなら最初にヒットした要素を表すElementオブジェクトを取得する。
いずれも検索にヒットしない場合はNoneを返す。
elemが表す要素の直下にある'element'要素を検索する。
subElem = elem.find('.//element')
elemが表す要素の直下にある'element'要素のさらに直下にある'element2'要素を取得する。
subElem = elem.find('.//element/element2')
elemが表す要素の直下にある'element'要素の中で'attr'属性を持った要素を検索する。
subElem = elem.find('.//element[@attr]')
elemが表す要素の直下にある'element'要素の中で'attr'属性を持ち値が'1'の要素を検索する。
subElem = elem.find(".//element[@attr='1']")
■属性の値を取得する
elemが表す要素のattr属性を取得する。
elemが表す要素のattr属性を取得する。
attrValue = elem.get('attr')
デフォルト値を指定して取得する。
attrValue = elem.get('attr', defaultValue)
■属性のリストを取得する
attrList = elem.keys()
■属性と値のタプルをリストで取得する
allAttrValues = elem.items() # [(attr1, value1), (attr2, value2), ...] という形式で返す