当需要从XML文件中提取指定内容时,可以使用Python的内置库xml.etree.ElementTree
。以下是提取XML指定内容的完整攻略步骤:
- 导入
xml.etree.ElementTree
库
在Python代码中导入xml.etree.ElementTree
库,该库是内置的,无需安装。
import xml.etree.ElementTree as ET
- 使用
ET.parse()
方法解析XML数据
使用ET.parse()
方法解析XML数据,并将其赋值给一个变量。在示例中,XML数据存储在名为data.xml
的文件中。
tree = ET.parse('data.xml')
- 获取需要的XML元素
使用tree.findall()
方法获取XML元素,并将结果赋值给一个变量。这里使用示例XML文件中的<name>
元素作为获取对象。
root = tree.getroot()
name_list = []
for name in root.findall("./student/name"):
name_list.append(name.text)
- 将获取到的元素列表打印出来
使用print()
函数将获取到的元素列表打印出来,以便查看。
print(name_list)
下面是针对XML文件中获取指定元素的两个示例:
示例1:获取<name>
元素,该元素是一个直接子元素:
XML数据
<?xml version="1.0"?>
<data>
<student>
<name>Alice</name>
<age>21</age>
</student>
<student>
<name>Bob</name>
<age>22</age>
</student>
<student>
<name>Cathy</name>
<age>23</age>
</student>
</data>
Python代码
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml')
root = tree.getroot()
name_list = []
for name in root.findall("./student/name"):
name_list.append(name.text)
print(name_list)
结果
['Alice', 'Bob', 'Cathy']
示例2:获取<phone>
元素,该元素是一个嵌套元素:
XML数据
<?xml version="1.0"?>
<data>
<person>
<name>John</name>
<age>27</age>
<contact>
<email>john@example.com</email>
<phone>
<home>555-1234</home>
<work>555-5678</work>
</phone>
</contact>
</person>
<person>
<name>Susan</name>
<age>30</age>
<contact>
<email>susan@example.com</email>
<phone>
<home>555-1234</home>
<work>555-5678</work>
</phone>
</contact>
</person>
</data>
Python代码
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml')
root = tree.getroot()
phone_list = []
for phone in root.findall("./person/contact/phone"):
home = phone.find('home').text
work = phone.find('work').text
phone_list.append({"home": home, "work": work})
print(phone_list)
结果
[{'home': '555-1234', 'work': '555-5678'}, {'home': '555-1234', 'work': '555-5678'}]
以上就是Python提取指定XML元素的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python如何提取xml指定内容 - Python技术站