找到Python XML元素,但计算结果为False-如何通过pythonically检查存在性?

找到Python XML元素,但计算结果为False-如何通过pythonically检查存在性?,python,xml,python-2.7,Python,Xml,Python 2.7,我在Python中使用xml.etree解析SOAP响应(不要问…)。响应包含一个元素 我去搜索它,找到它,得到一个xml.etree.ElementTree.Element实例,我们称它为my_Element 然而,所述实例的计算结果为False bool(my_元素)为False my\u元素。\uuuu非零元素(为False(使用Python 2.7,否则我会选中\uuuu bool()) 我假设这是因为my_元素.text是空的,因为是空的xml元素 我还假设这是一种类似python

我在Python中使用
xml.etree
解析SOAP响应(不要问…)。响应包含一个
元素

我去搜索它,找到它,得到一个
xml.etree.ElementTree.Element
实例,我们称它为
my_Element

然而,所述实例的计算结果为
False

  • bool(my_元素)
    为False
  • my\u元素。\uuuu非零元素(
    False
    (使用Python 2.7,否则我会选中
    \uuuu bool()
我假设这是因为
my_元素.text
是空的,因为
是空的xml元素

我还假设这是一种类似python的方法,因为空列表和dict的行为类似——尽管我认为空但现有的XML元素的含义不同:检查它是否存在的最类似python的方法是什么

真的是这样吗

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

否,
isinstance
不是检查
元素是否不存在的推荐方法

发件人:

注意:没有子元素的元素将测试为False。此行为将在将来的版本中更改。使用特定的
len(elem)
elem为None
测试代替

发件人:

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

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

您没有列出用于查找它的方法。但如果找不到,它可能不会返回任何值。所以如果my_元素不是None,则可能
succeed=myTree.find('Success')不是None
。理想情况下,响应的设计应该使成功元素始终存在并设置为True或False。这是否回答了您的问题?没有看到警告。如果元素没有子元素,为什么返回false?我不明白那个决定。
my_element = tree.find('.//Success')
if my_element is not None:
    do_something(my_element)