下面是“Python解析XML简单示例”的完整攻略:
1. 什么是XML?
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言。它类似于HTML,但XML的标记是自定义的。XML也被广泛用于Web服务,数据交换和配置文件等方面。
2. Python解析XML的方法
Python支持多种XML解析工具,其中最流行的是以下两种:
2.1. xml.etree.ElementTree
python内置了标准库xml.etree.ElementTree模块,它提供丰富的XML处理功能。
以下是一个简单的示例,它使用ElementTree解析一个XML文件:
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
print(root.tag)
for child in root:
print(child.tag, child.attrib)
这里用ET.parse()方法读取XML文件,返回一个ElementTree对象,然后用.getroot()方法获取树的根节点,接下来用for循环遍历根节点的子节点。
2.2. lxml
lxml是Python中非常流行的第三方XML解析库。它的API与ElementTree相似,但它的性能更好。
以下是一个使用lxml解析XML文件的示例:
from lxml import etree
tree = etree.parse('example.xml')
root = tree.getroot()
print(root.tag)
for child in root:
print(child.tag, child.attrib)
这里用etree.parse()方法读取XML文件,返回一个Element对象。然后用.getroot()方法获取树的根节点,接下来用for循环遍历根节点的子节点。
3. 示例说明
3.1. 实例1:解析XML文件并打印
假设我们有一个example.xml文件,内容如下:
<?xml version="1.0"?>
<catalog>
<book id="001">
<author>John Doe</author>
<title>The John Doe Story</title>
<price>19.95</price>
</book>
<book id="002">
<author>Jane Doe</author>
<title>The Jane Doe Story</title>
<price>12.99</price>
</book>
</catalog>
我们可以使用以下代码解析此文件:
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
for book in root.findall('book'):
id = book.get('id')
author = book.find('author').text
title = book.find('title').text
price = book.find('price').text
print(id, author, title, price)
结果应该如下:
001 John Doe The John Doe Story 19.95
002 Jane Doe The Jane Doe Story 12.99
3.2. 实例2:创建XML文件
我们可以使用Python的ElementTree模块创建XML文件。
假设我们要创建以下XML文件:
<employees>
<employee id="001" type="admin">
<firstname>John</firstname>
<lastname>Doe</lastname>
<age>32</age>
</employee>
<employee id="002" type="data">
<firstname>Jane</firstname>
<lastname>Doe</lastname>
<age>28</age>
</employee>
</employees>
以下是使用Python创建该XML文件的示例代码:
import xml.etree.ElementTree as ET
root = ET.Element('employees')
employee1 = ET.SubElement(root, 'employee')
employee1.set('id', '001')
employee1.set('type', 'admin')
firstname1 = ET.SubElement(employee1, 'firstname')
firstname1.text = 'John'
lastname1 = ET.SubElement(employee1, 'lastname')
lastname1.text = 'Doe'
age1 = ET.SubElement(employee1, 'age')
age1.text = '32'
employee2 = ET.SubElement(root, 'employee')
employee2.set('id', '002')
employee2.set('type', 'data')
firstname2 = ET.SubElement(employee2, 'firstname')
firstname2.text = 'Jane'
lastname2 = ET.SubElement(employee2, 'lastname')
lastname2.text = 'Doe'
age2 = ET.SubElement(employee2, 'age')
age2.text = '28'
tree = ET.ElementTree(root)
tree.write('employees.xml')
这里我们首先创建一个根节点(即employees),然后使用SubElement()方法向根节点添加子元素,最后使用ET.ElementTree()方法创建ElementTree对象,并使用write()方法将XML文件保存到磁盘上。
下面是生成的XML文件:
<employees>
<employee id="001" type="admin">
<firstname>John</firstname>
<lastname>Doe</lastname>
<age>32</age>
</employee>
<employee id="002" type="data">
<firstname>Jane</firstname>
<lastname>Doe</lastname>
<age>28</age>
</employee>
</employees>
至此,本次攻略结束,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python解析xml简单示例 - Python技术站