Python 标记ElementTree中Findall的空XML结果
我正在编写一个python脚本来查找XML文件中的各种标记,并希望在找不到特定标记(表明我们的元数据不完整)时发出警告。对于只有一个实例的图元,此操作非常有效:Python 标记ElementTree中Findall的空XML结果,python,xml,elementtree,findall,Python,Xml,Elementtree,Findall,我正在编写一个python脚本来查找XML文件中的各种标记,并希望在找不到特定标记(表明我们的元数据不完整)时发出警告。对于只有一个实例的图元,此操作非常有效: try: element = tree.find("idinfo/descript/abstract") if element is None: print "(!) No description/abstract in file" print "ABSTRACT: {}".format(elem
try:
element = tree.find("idinfo/descript/abstract")
if element is None:
print "(!) No description/abstract in file"
print "ABSTRACT: {}".format(element.text)
except:
print "(!) No description/abstract found"
此循环用于查找所有procdate
元素,但在没有任何元素时,无论是“if none”还是“except”警告版本,都不会给出任何错误消息
try:
for element in tree.findall("dataqual/lineage/procstep/procdate"):
if element is None:
print "(!) No revision date in file"
print "REVISION DATE: {}".format(element.text)
except:
print "(!) No revision date found"
[如果我不能主动地将某个内容标记为空,这不是什么大问题,但是如果能够提醒用户…][/p>当没有找到任何内容时,
findall()
将返回一个空列表。首先测试:
results = tree.findall("dataqual/lineage/procstep/procdate")
if not results:
print "(!) No revision date found"
else:
for element in results:
print "REVISION DATE: {}".format(element.text)
notresults
就足够了,因为空容器在布尔上下文中测试为false。哦,谢谢,我知道这很简单,只是找不到什么!