我在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')
有人可以为此建议一个功能吗?或者更好的方法来解决这个问题?谢谢。
答案 0 :(得分:2)
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}}