在python

时间:2016-11-09 03:15:00

标签: python xml python-3.x parsing elementtree

我在python3中使用了ElementTree XML API并且有一个问题,这似乎是基本的,我只是在文档中没有找到正确的函数来执行它。起点是我考虑一个xml文件,其名称在字符串name中给出。我正在寻找一个检查是否存在chld的函数。以它的名字命名。目前我在做的是:

     import xml.etree.ElementTree as ET
     tree = ET.parse(name)
     root = tree.getroot()
     item = root.getchildren()[2]

因为我知道我正在查找的项目位于第2位(第3项)。但我宁愿有类似的东西:

     item = root.checkIfExists('itemName')

有人可以为此建议一个功能吗?或者更好的方法来解决这个问题?谢谢。

1 个答案:

答案 0 :(得分:2)

引用the documentation

  

Element.findall()仅查找带有标记的元素,这些元素是当前元素的直接子元素。 Element.find()查找具有特定标记的第一个子项

所以,试试:

None
如果不存在此类元素,

.find()将返回.findall()。在这种情况下,import xml.etree.ElementTree as ET root = ET.XML('<root><item1/><item2/><itemName/></root>') assert root.getchildren()[2] is root.find('itemName') 会返回一个空列表。

演示:

{{1}}