-1

我正在使用 ixml 来解析 XML 文档。

from lxml import etree
root=etree.XML(full xml tag file content)
 if (next(root.iterfind(".//one_inner_tag")).text is None):
      Print "NONE VALUE"
 else:
      Print root.iterfind(".//one_inner_tag")).text

在执行此代码时,我遇到了类似的错误

if (next(root.iterfind(".//one_inner_tag")).text is None):
StopIteration

因为文件内容没有那个特定的标签。如果标签没有值意味着我需要打印 NONE VALUE。但它会打印错误。

4

1 回答 1

2

next可以采用迭代器耗尽时返回的第二个参数,因此请尝试:

elem = next(root.iterfind(".//one_inner_tag"), None)  # Returns None on empty iterator
if elem is None or elem.text is None:
    print "NONE VALUE"
else:
    print elem.text
于 2016-01-11T14:06:10.140 回答