PythonでXMLの属性を追加・編集する方法について。
この記事の内容はコチラです
- PythonでXMLの属性を追加する
- XMLの属性を編集する
- xml.etree.ElementTree モジュールの使い方を知る
XMLを取得して追加・編集するには、「xml.etree.ElementTree」モジュールを使います。
今回は、PythonでXMLの属性を追加・編集するxml.etree.ElementTree モジュールの使い方を解説します。
PythonでXMLの属性を追加・編集
サンプルxml
<!-- C:\pg\sports.xml --> <?xml version="1.0" encoding="UTF-8" ?> <sports> <sport> <name order="001">サッカー</name> <orgin>イングランド</orgin> </sport> <sport> <name order="002">野球</name> <orgin>アメリカ</orgin> </sport> </sports>
このサンプルXMLを変更していきます。
XMLを取得する
import xml.etree.ElementTree as ET # XMLを解析 tree = ET.parse('C:\pg\sports.xml') # XMLを取得 root = tree.getroot()
まずはPythonでXMLを取得します。parse でXMLを解析し、getroot でツリーのルートを取得します。
属性の編集・変更 set
# 属性の変更 for name in root.iter('name'): if name.text == 'サッカー': name.set('order', '1') elif name.text == '野球': name.set('order', '2') # 保存 tree.write('C:\pg\sports.xml')
属性の編集・変更は、set を使います。「要素.set(属性, 変更後のデータ)」となります。
ここでは「name」属性を1件ずつ取得し、要素名によってセットする属性を変えました。
変更後のXML
<!-- C:\pg\sports.xml --> <?xml version="1.0" encoding="UTF-8" ?> <sports> <sport> <name order="1">サッカー</name> <orgin>イングランド</orgin> </sport> <sport> <name order="2">野球</name> <orgin>アメリカ</orgin> </sport> </sports>
サンプルXMLの属性の値を編集・変更することができました。
属性の追加 set
# 属性の追加 for orgin in root.iter('orgin'): if orgin.text == 'イングランド': orgin.set('order', '1') elif orgin.text == 'アメリカ': orgin.set('order', '2') # 保存 tree.write('C:\pg\sports.xml')
属性の変更は、set を使います。「要素.set(属性, 変更後のデータ)」となります。
変更後のXML
<!-- C:\pg\sports.xml --> <?xml version="1.0" encoding="UTF-8" ?> <sports> <sport> <name order="1">サッカー</name> <orgin order="1">イングランド</orgin> </sport> <sport> <name order="2">野球</name> <orgin order="2">アメリカ</orgin> </sport> </sports>
サンプルXMLへ属性を追加することができました。
以上、PythonでXMLの属性を追加・編集するxml.etree.ElementTree モジュールの使い方でした。
● Python初心者におすすめ!
Python学習方法に関する記事です。読まないと損するかも。
コメント