添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

python xml.etree.elementtree findall

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元素的nameage子元素,并输出它们的值。

希望这个例子能帮助您更好地理解findall()方法的用法。

  •