在python中检查是否存在使用ElementTree进行XML解析的孩子
问题描述:
我在python3中使用ElementTree XML API并且有一个问题,这似乎很基础,我只是没有在文档中找到正确的函数它。起点是我认为一个xml文件,其名称在字符串name
中给出。我正在寻找一个函数来检查一个chld是否存在。由它的名字。目前,我在做什么是:在python中检查是否存在使用ElementTree进行XML解析的孩子
import xml.etree.ElementTree as ET
tree = ET.parse(name)
root = tree.getroot()
item = root.getchildren()[2]
,因为我知道,我期待在该项目是在位置2(第3项)。但我宁愿有这样的事情:
item = root.checkIfExists('itemName')
有人可以为此提出一个函数吗?或者更好的方法来解决这个问题?谢谢。
答
Element.findall()发现仅与一标签,其是当前元素的直接子元素。 Element.find()找到的第一个孩子带有特定标记
所以,尽量:
item = root.find('itemName')
.find()
回报None
,如果没有这样的元素存在。 .findall()
在这种情况下返回空列表。
示范:
import xml.etree.ElementTree as ET
root = ET.XML('<root><item1/><item2/><itemName/></root>')
assert root.getchildren()[2] is root.find('itemName')