Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #44498

Re: xml.etree.ElementTree if element does not exist?

From Neil Cerutti <neilc@norwich.edu>
Newsgroups comp.lang.python
Subject Re: xml.etree.ElementTree if element does not exist?
Date 2013-04-29 12:25 +0000
Organization Norwich University
Message-ID <au775tFhuuU1@mid.individual.net> (permalink)
References <mailman.1147.1367231260.3114.python-list@python.org>

Show all headers | View raw


On 2013-04-29, Ombongi Moraa Fe <moraa.lovetakes2@gmail.com> wrote:
>
> Good Afternoon,
>
> Among other elements values that my script finds is value for sepid
>
> sepid = content.find(".//{http://www.huawei.com.cn/schema/common/v2_1}sepid
> ").text
>
>
> 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'

find returns None when it doesn't find what you asked for. So you
can't check the .text attribute right away unless you want an
exception thrown. I deal with these annoyances like this:

sepelem = content.find(".//{http://www.huawei.com.cn/schema/common/v2_1}sepid")
if sepelem is not None:
   sepid = sepid.text
else:
   sepid = ''

The empty string works for my purposes. Your script might need
something else.

-- 
Neil Cerutti

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

RE: xml.etree.ElementTree if element does not exist? Ombongi Moraa Fe <moraa.lovetakes2@gmail.com> - 2013-04-29 13:26 +0300
  Re: xml.etree.ElementTree if element does not exist? Neil Cerutti <neilc@norwich.edu> - 2013-04-29 12:25 +0000
    Re: xml.etree.ElementTree if element does not exist? Neil Cerutti <neilc@norwich.edu> - 2013-04-29 12:29 +0000

csiph-web