我使用lxml.etree。
例如,我有像这样的xml文件:
<Company>
<Employee>
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<Valod>
<Person Name="Jack"></Person>
</Valod>
<ContactNo>1234567890</ContactNo>
<Email>tanmaypatil@xyz.com</Email>
<Address>
<City>Bangalore</City>
<State>Karnataka</State>
<Zip>560212</Zip>
<Room>
<Person Name="Bill"></Person>
<Person Name="John"></Person>
</Room>
</Address>
</Employee>
</Company>
作为搜索的结果,我想要所有'人'。 像'element.getAll('person')'返回元素的东西:
<Person Name="Jack"></Person>
<Person Name="Bill"></Person>
<Person Name="John"></Person>
答案 0 :(得分:1)
您可以使用XPath
https://docs.python.org/2/library/xml.etree.elementtree.html#elementtree-xpath
它可能会像
root.findall("//Person")
其中root
是ElementTree
,因为//
找到所有子项,无论是立即还是其他,Person
是节点名称。
答案 1 :(得分:1)
从官方Python网站查看this教程,该教程准确显示了您的需求。
import xml.etree.ElementTree as ET
tree = ET.parse('person.xml')
root = tree.getroot()
for person in root.findall('Person'):
do something