Pythonでは、XMLの要素・属性・内容(データ)を削除について。
この記事の内容はコチラです
- PythonからXMLの要素を削除する
- XMLの属性を削除する
- XMLのデータを削除する
- xml.etree.ElementTree モジュールの使い方を知る
XMLを削除するには、xml.etree.ElementTree モジュールのremove・pop・clearを使います。
今回は、PythonでXMLを削除するxml.etree.ElementTree モジュールのremove・pop・clearの使い方を解説します。
Python XMLの要素・属性・内容を削除する方法
サンプルXML
sports.xml
<?xml version="1.0" encoding="UTF-8" ?> <sports> <sport order="001"> <name>サッカー</name> <orgin>イングランド</orgin> </sport> <sport order="002"> <name>野球</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()
まずはXMLを解析します。XMLファイルをparse で解析し、getroot でXMLのルートを取得します。
XMLの要素を削除する remove
# 要素を削除する for sport in root.findall('sport'): for orgin in sport.findall('orgin'): sport.remove(orgin) # XMLファイルに保存 tree.write('C:\pg\sports.xml')
削除(remove)後のXML
<?xml version="1.0" encoding="UTF-8" ?> <sports> <sport order="001"> <name>サッカー</name> </sport> <sport order="002"> <name>野球</name> </sport> </sports>
XMLの要素を削除するには、remove を使います。
remove は「親要素.remove(削除する子要素)」と指定します。要素「sport」をfindall で取り出し、その要素の中の要素「orgin」をさらにfindall で取り出しました。
ここでは要素「orgin」を削除しました。
XMLの属性を削除する pop
# 属性を削除する for sport in root.iter('sport'): sport.attrib.pop("order", None) # XMLファイルに保存 tree.write('C:\pg\sports.xml')
削除(pop)後のXML
<?xml version="1.0" encoding="UTF-8" ?> <sports> <sport> <name>サッカー</name> </sport> <sport> <name>野球</name> </sport> </sports>
XMLの属性を削除するには、pop を使います。
ここでは要素「sport」にある属性「order」を削除しました。
XMLのデータ(テキスト、コンテンツ)を削除(クリア)する
# 内容の削除 for name in root.iter('name'): name.text = '' # XMLファイルに保存 tree.write('C:\pg\sports.xml')
削除後のXML
<?xml version="1.0" encoding="UTF-8" ?> <sports> <sport> </name> </sport> <sport> </name> </sport> </sports>
XMLの要素・属性ではなく、データ(テキスト)自体をを削除するには、text を使います。
ここでは要素「name」にあるテキストを削除(クリア)しました。
XMLの要素・属性・テキストを一括で削除する
# 要素・属性・テキストをすべて削除する root.clear() # XMLファイルに保存 tree.write('C:\pg\sports.xml')
削除後のXML
<?xml version="1.0"?> <sports/>
XMLの要素・属性・テキストをすべて削除するには、clear を使います。
これでPythonのXMLの削除するパターンとして、要素の削除・属性の削除・内容の削除の3パターンの削除を実行することができました。
参考ページ:https://docs.python.jp/3/library/xml.etree.elementtree.html
以上、PythonでXMLの要素・属性・内容を削除する方法でした。
● Python初心者におすすめ!
Python学習方法に関する記事です。読まないと損するかも。
コメント