次のコードが機能しないため、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' object has no attribute '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>
私が試みている性質の検索を行う必要がある理由は、「pay」属性がpay2に設定されている仕事を持つ人々の名前を印刷しようとしているためです。