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学習方法に関する記事です。読まないと損するかも。

コメント