繁体   English   中英

蟒蛇。 如何从带有具体标签的xml文件中获取所有元素?

[英]Python. How to get all element from xml file with concrete tag?

我使用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>

从官方Python站点上查看教程,该站点确切显示了您的需求。

import xml.etree.ElementTree as ET
tree = ET.parse('person.xml')
root = tree.getroot()
for person in root.findall('Person'):
    do something

您可以使用XPath

https://docs.python.org/2/library/xml.etree.elementtree.html#elementtree-xpath

它可能类似于root.findall("//Person") ,其中rootElementTree ,因为//查找所有子代,无论是直接子代还是其他子代,而Person是节点名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM