Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #44498
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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