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