Python存取XML的常见方法实例分析
XML是一种用于标记数据的语言,Python中提供了多种操作XML的方法,本文将介绍Python中存取XML的常见方法。
读取XML文件
方法一:使用ElementTree模块
ElementTree是Python的常用XML解析器,提供了用于创建、解析和操作XML文档的API。以下是一个示例:
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
# 输出根元素的标签
print(root.tag)
解释:
- 导入xml.etree.ElementTree模块。
- 使用ET.parse()方法解析XML文件,返回一个ElementTree对象。
- 使用.getroot()方法获取XML文件的根元素。
- 输出根元素的标签名。
方法二:使用minidom模块
minidom是Python的另一个XML解析器,它提供了一组标准的DOM API,可以在内存中直接解析XML文件。以下是一个示例:
from xml.dom import minidom
xmldoc = minidom.parse('example.xml')
# 输出根元素的标签
print(xmldoc.documentElement.tagName)
解释:
- 导入xml.dom.minidom模块。
- 使用minidom.parse()方法解析XML文件,返回一个Document对象。
- 使用documentElement属性获取XML文件的根元素节点。
- 输出根元素的标签名。
写入XML文件
方法一:使用ElementTree模块
ElementTree模块不仅可以读取XML文件,还可以写入XML文件。以下是一个示例:
import xml.etree.ElementTree as ET
root = ET.Element('root') # 创建根元素
doc = ET.SubElement(root, 'doc')
ET.SubElement(doc, 'field1', name='foo').text = 'bar'
ET.SubElement(doc, 'field2', name='goo').text = 'kok'
tree = ET.ElementTree(root)
tree.write('example.xml') # 将XML文件写入磁盘
解释:
- 导入xml.etree.ElementTree模块。
- 使用ET.Element()方法创建根元素。
- 使用ET.SubElement()方法创建子元素。
- 使用.text属性设置元素的内容。
- 使用ET.ElementTree()方法创建ElementTree对象。
- 使用ElementTree对象的write()方法将XML文件写入磁盘。
方法二:使用minidom模块
minidom模块也可以写入XML文件。以下是一个示例:
from xml.dom import minidom
doc = minidom.Document()
# 创建根元素
root = doc.createElement('root')
doc.appendChild(root)
# 创建子元素
doc1 = doc.createElement('doc')
root.appendChild(doc1)
field1 = doc.createElement('field1')
field1.setAttribute('name', 'foo')
field1.appendChild(doc.createTextNode('bar'))
doc1.appendChild(field1)
field2 = doc.createElement('field2')
field2.setAttribute('name', 'goo')
field2.appendChild(doc.createTextNode('kok'))
doc1.appendChild(field2)
# 将XML文件写入磁盘
with open('example.xml', 'w') as f:
f.write(doc.toprettyxml())
解释:
- 导入xml.dom.minidom模块。
- 创建Document对象。
- 创建根元素。
- 创建子元素。
- 使用setAttribute()方法设置元素的属性。
- 使用createTextNode()方法设置元素的内容。
- 将元素添加到文档中。
- 使用toprettyxml()方法生成XML字符串。
- 将XML字符串写入磁盘。
结语
本文介绍了Python中常用的两种方法读取和写入XML文件,ElementTree和minidom。ElementTree使用起来比较简洁,而minidom则更加灵活和强大。读者可以根据具体需求选择适合自己的方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python存取XML的常见方法实例分析 - Python技术站