PythonでXMLファイルを読み込む方法を教えてください。
PythonでXMLファイルを読み込む方法はいくつかあります。
- ElementTreeライブラリによってxmlを読み込み、操作できます。Pythonにはxmlを操作するためのElementTreeライブラリがもともと組み込まれています。以下に例を示します。
import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
root = tree.getroot()
# 遍历所有的子节点
for child in root:
print(child.tag, child.attrib)
# 获取特定子节点的值
value = root.find('child_node').text
# 修改特定子节点的值
root.find('child_node').text = 'new_value'
# 保存修改后的XML文件
tree.write('new_file.xml')
- lxmlライブラリ: lxmlライブラリは、速度が早く、XMLファイルをパースして処理する強力なライブラリです。サンプルコードを以下に示します。
from lxml import etree
tree = etree.parse('file.xml')
root = tree.getroot()
# 遍历所有的子节点
for child in root:
print(child.tag, child.attrib)
# 获取特定子节点的值
value = root.find('child_node').text
# 修改特定子节点的值
root.find('child_node').text = 'new_value'
# 保存修改后的XML文件
tree.write('new_file.xml', pretty_print=True, encoding='utf-8')
- XML.dom.minidomライブラリを使う: XML.dom.minidomライブラリは、XMLファイルを解析するためにPythonに元々内蔵されているXML DOMパーサで、これを使用してXMLファイルの読み取りや操作をすることができます。サンプルコードを以下に示します。
from xml.dom import minidom
dom = minidom.parse('file.xml')
root = dom.documentElement
# 遍历所有的子节点
for child in root.childNodes:
if child.nodeType == child.ELEMENT_NODE:
print(child.tagName, child.attributes.items())
# 获取特定子节点的值
value = root.getElementsByTagName('child_node')[0].firstChild.nodeValue
# 修改特定子节点的值
node = root.getElementsByTagName('child_node')[0]
node.firstChild.replaceWholeText('new_value')
# 保存修改后的XML文件
with open('new_file.xml', 'w') as f:
dom.writexml(f, addindent=' ', newl='\n', encoding='utf-8')
いずれの方法もXMLファイルを読み込み、データを抽出し、変更できます。使用する方法は個人ごとに要件や習慣に応じて異なります。