python如何从带有具体标记的xml文件中获取所有元素?
我使用lxml.etree 例如,我有如下xml文件:python如何从带有具体标记的xml文件中获取所有元素?,python,xml,lxml,Python,Xml,Lxml,我使用lxml.etree 例如,我有如下xml文件: <Company> <Employee> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <Valod> <Person Name="Jack"></Person> </Valod>
<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>
坦美
帕蒂尔
1234567890
tanmaypatil@xyz.com
班加罗尔
卡纳塔克邦
560212
作为搜索的结果,我想要所有的“人”。
类似于“element.getAll('person')”的东西,它返回元素:
<Person Name="Jack"></Person>
<Person Name="Bill"></Person>
<Person Name="John"></Person>
您可以使用XPath
可能是这样的
root.findall(“//Person”)
其中root
是一个ElementTree
,因为/
是查找所有子节点(立即或其他),而Person
是节点名。您可以使用XPath
可能是这样的
root.findall(“//Person”)
其中root
是一个ElementTree
,因为/
是查找所有子节点,无论是立即查找还是其他查找,而Person
是节点名。请查看官方Python网站上的教程,它准确地显示了您需要的内容
import xml.etree.ElementTree as ET
tree = ET.parse('person.xml')
root = tree.getroot()
for person in root.findall('Person'):
do something
查看官方Python站点上的教程,它准确地显示了您需要的内容
import xml.etree.ElementTree as ET
tree = ET.parse('person.xml')
root = tree.getroot()
for person in root.findall('Person'):
do something
我试过了,但它没有返回任何结果。我们需要查看您的代码示例以及XML,以了解出了什么问题,我想我已经修复了它。始终需要在标记名之前添加命名空间。像.findall(“.//{namespace}Person”)或.findall(“.//prefix:Person”,namespaces_加_前缀)我尝试了,但它没有返回任何结果。我们需要查看代码示例以及XML以了解出了什么问题,我想我已经修复了它。始终需要在标记名之前添加命名空间。像.findall(“.//{namespace}Person”)或.findall(“.//prefix:Person”,名称空间_加上_前缀)