xml.etree.ElementTree
是Python内置的用于处理XML文档的模块。其中的
findall()
方法可以通过XPath表达式来查找符合条件的所有元素,并将它们以一个列表的形式返回。
具体来说,
findall()
方法的语法如下:
findall(xpath, namespaces=None)
其中,xpath
是一个字符串,表示要查找的XPath表达式。namespaces
是一个可选的字典类型参数,用于指定XML文档中使用的命名空间。如果不指定namespaces
,则默认使用空字典。
findall()
方法返回一个列表,列表中的每个元素都是符合XPath表达式条件的元素对象。如果没有找到任何符合条件的元素,返回一个空列表。
以下是一个简单的例子,假设我们有一个XML文档example.xml
,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>John</name>
<age>30</age>
</person>
<person>
<name>Alice</name>
<age>25</age>
</person>
<person>
<name>Bob</name>
<age>40</age>
</person>
</root>
我们可以使用findall()
方法来查找所有名为person
的元素,并输出它们的名字和年龄:
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
root = tree.getroot()
persons = root.findall('person')
for person in persons:
name = person.find('name').text
age = person.find('age').text
print('Name:', name, 'Age:', age)
运行以上代码,输出如下:
Name: John Age: 30
Name: Alice Age: 25
Name: Bob Age: 40
在这个例子中,我们首先使用ET.parse()
方法将XML文档解析成一个ElementTree对象,然后通过getroot()
方法获取XML文档的根元素。接下来,使用findall()
方法查找所有名为person
的元素,并将它们保存到persons
列表中。最后,遍历persons
列表,分别提取每个person
元素的name
和age
子元素,并输出它们的值。
希望这个例子能帮助您更好地理解findall()
方法的用法。