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