xml.etree.ElementTree if element does not exist?

Stefan Holdermans stefan at vectorfabrics.com
Mon Apr 29 07:22:31 EDT 2013


Ombongi,

> however, if i pass xml data that DOES NOT contain sepid element, i get an error:
> 
> Traceback (most recent call last):
>   File "/usr/local/bin/receive.py", line 21, in <module>
>     sepid = content.find(".//{http://www.huawei.com.cn/schema/common/v2_1}sepid").text
> AttributeError: 'NoneType' object has no attribute 'text'
> 
> 
> some messages i receive will have the sepid parameter, other will not have this parameter. How can i cater for this? kinda like an if .. else implementation for xml.etree.ElementTree  ?

What about simply testing whether the value returned by find is None? For example:

  $ cat test.py
  from xml.etree import ElementTree

  myTree = ElementTree.fromstring('<test />')
  myElement = myTree.find('orange')

  if myElement is None:
      print 'tree does not contain a child element "orange"'
  else:
      print myElement.text
    

  $ python test.py
  tree does not contain a child element "orange"

HTH,

  Stefan


More information about the Python-list mailing list