PythonでXMLに要素を追加する方法について。
この記事の内容はコチラです
- PythonからXMLに要素を追加する
- 新規XMLに追加
- 既存XMLに追加
- SubElement関数の使い方を知る
PythonでXMLに要素を追加するには、xml.etree.ElementTree モジュールのSubElement関数を使います。
今回は、PythonでXMLに要素を追加する方法を解説します。
新規XMLに要素を追加する SubElement・Element
まずは新規にXMLを作成して要素を追加するパターンです。
要素を追加する
import xml.etree.ElementTree as ET
# 親要素を追加する
sports = ET.Element('sports')
# 子要素1を追加する
s_name = ET.SubElement(sports, 'name')
# 子要素2を追加する
s_orgin = ET.SubElement(sports, 'orgin')
# 孫要素を追加する
s_orginyear = ET.SubElement(s_orgin, 'orgin_year')
XMLファイルを保存する
# XML保存する
tree = ET.ElementTree(sports)
tree.write('C:\pg\sports.xml')
作成されたXMLファイル
<!-- C:\pg\sports.xml -->
<sports>
<name />
<orgin>
<orgin_year />
</orgin>
</sports>
Pythonでxml.etree.ElementTree モジュールを使って新規XMLファイルを作成しました。
要素を追加するには、Element、SubElement を使います。
親要素を追加するには、Element(親要素名)を使います。子要素・孫要素を追加するには、SubElement(親要素, 子要素名)を使います。
新規で作成したXMLファイルを保存するには、ElementTreeをwrite します。
作成済みXMLに要素を追加する SubElement
次は、すでにあるXMLに要素を追加するパターンです。
sports.xml
<!-- C:\pg\sports.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<sports>
<sport>
<name>サッカー</name>
<orgin>イングランド</orgin>
</sport>
<sport>
<name>野球</name>
<orgin>アメリカ</orgin>
</sport>
</sports>
このサンプルXMLに要素を追加していきます。
XMLファイルを解析
import xml.etree.ElementTree as ET
# XMLファイルを解析
tree = ET.parse('C:\pg\sports.xml')
# ツリーを取得
root = tree.getroot()
要素を追加
for sport in root.findall('sport'):
# 新規要素「population」を子要素に追加する
s_population = ET.SubElement(sport, 'population')
# 要素「population」にテキストを設定する
name = sport.find('name').text
if name == 'サッカー':
s_population.text = '25000'
elif name == '野球':
s_population.text = '3000'
tree = ET.ElementTree(root)
tree.write('C:\pg\sports.xml')
要素「sport」の直下に要素「population」を追加しました。
PythonでXMLの要素を追加するには、SubElement を使います。SubElement(親要素, 子要素名)とします。
新規に追加した要素「population」にはテキストを追加しました。テキストはtext で追加します。
XML保存
# ツリー反映
tree = ET.ElementTree(root)
# XML保存
tree.write('C:\pg\sports.xml', encoding="UTF-8")
最後にツリーをXMLに反映して完了です。
sports.xml
<?xml version="1.0" encoding="UTF-8" ?>
<sports>
<sport>
<name>サッカー</name>
<orgin>イングランド</orgin>
<population>25000</population>
</sport>
<sport>
<name>野球</name>
<orgin>アメリカ</orgin>
<population>3000</population>
</sport>
</sports>
XMLの確認すると、要素「population」が追加され、テキストも追加されました。
参考ページ:https://docs.python.jp/3/library/xml.etree.elementtree.html
以上、PythonでXMLに要素を追加するxml.etree.ElementTree モジュールのSubElement関数の使い方でした。
● Python初心者におすすめ!
Python学習方法に関する記事です。読まないと損するかも。

コメント