gpt4 book ai didi

找到 Python XML 元素但计算结果为 False - 如何以 Python 方式检查存在性?

转载 作者:太空宇宙 更新时间:2023-11-03 16:18:13 25 4
gpt4 key购买 nike

我正在使用xml.etree在 Python 中解析 SOAP 响应(不要问...)。响应包含<Success />元素。

我去搜索它,找到它并得到一个 xml.etree.ElementTree.Element例如,我们称之为my_element .

但所述实例的计算结果为 False

  • bool(my_element)是假的
  • my_element.__nonzero__()False (使用Python 2.7,否则我当然会检查__bool__())。

我认为这是因为 my_element.text为空,如<Success />是一个空的 xml 元素。

我还认为这是一个Python式的事情,因为空列表和字典的行为类似 - 尽管我认为空但现有的XML元素的含义是不同的:What is the most pythonic way to check it if it is there ?

真的是下面这个吗?

from xml.etree.ElementTree import Element
...
if isinstance(my_element, Element):

最佳答案

不,isinstance 不是检查 Element 是否不存在的推荐方法。

来自the docs :

Caution: Elements with no subelements will test as False. This behavior will change in future versions. Use specific len(elem) or elem is None test instead.

来自the source :

   warnings.warn(
"The behavior of this method will change in future versions. "
"Use specific 'len(elem)' or 'elem is not None' test instead.",
FutureWarning, stacklevel=2
)

要测试元素是否不存在,请执行以下操作:

my_element = tree.find('.//Success')
if my_element is not None:
do_something(my_element)

关于找到 Python XML 元素但计算结果为 False - 如何以 Python 方式检查存在性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38725683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com