Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用Elementtree搜索属性_Python_Elementtree - Fatal编程技术网

如何在python中使用Elementtree搜索属性

如何在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

我对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")
   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