【Python】XMLの属性を追加・編集する(ElementTree)

スポンサーリンク

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

Pythonのコスパ最強スクールはココです!

最短ルートでPythonを独学する方法は?

オススメのPython勉強本を紹介します!

コメント