如何在python中使用Elementtree搜索属性
我对Elementtrees在Python中的工作方式有点困惑,因为以下代码不起作用:如何在python中使用Elementtree搜索属性,python,elementtree,Python,Elementtree,我对Elementtrees在Python中的工作方式有点困惑,因为以下代码不起作用: import xml.etree.ElementTree as ET file = ("People.xml") tree = parse(file) myList = tree.findall("person") for people in myList: print people.attrib["name"] jobs = people.findall("jobs/job") f
import xml.etree.ElementTree as ET
file = ("People.xml")
tree = parse(file)
myList = tree.findall("person")
for people in myList:
print people.attrib["name"]
jobs = people.findall("jobs/job")
for job in jobs:
print job.attrib["title"]
我得到一个错误,说AttributeError'list'对象没有属性'attrib'
。作业与人是如何不同的对象类型,因为它们都是从findall
返回的列表中的项目
示例xml文件是:
<person name="p1">
<address>address1</address>
<jobs>
<job title="title1">job1</job>
<job title="title2" pay="pay1">job2</job>
</jobs>
</person>
<person name="p2">
<address>address2</address>
<jobs>
<job title="title3">job3</job>
<job title="title4" pay="pay2">job4</job>
</jobs>
</person>
地址1
工作1
工作2
地址2
工作3
工作4
我需要搜索我正在尝试的性质的原因是,我正在尝试打印其工作的“pay”属性设置为pay2的人员的姓名。您应该避免调用变量“list”,因为它是内置python类型,另外,提供一些xml文件内容的摘录可能会有所帮助。只需执行一个简单的
打印人员
可能会有所帮助。我同意不将变量命名为“list”的建议,但如果我将“ET.”放在“parse”之前,并将xml文档包装在一个顶级元素中,那么您的代码仍然适用于我。你使用的是什么版本的Python?在这里和系统上更新了我的代码:)我正在运行2.6