[Fwd: Re: [Zope] test for the existence of a nodeValue]

Jon Bowlas me at jonbowlas.com
Thu Aug 4 05:31:49 EDT 2005


Thanks Dieter,


But I still cant get it to work. I've changed my get_attributes.py script
to this:

if not attobject:
    return ''
version = attobject.get_viewable()
nodes = version.content.documentElement.getElementsByTagName(attname) if
not nodes:
    return ''
nodeValue = nodes[0].childNodes[0].nodeValue
if not nodeValue:
    return "none"
return nodeValue

and my zpt is like this:


<span id="section_subheader" tal:define="isadditional
python:here.get_uclattribute(attobject, 'ucl_additional_name')"
tal:condition="python: isadditional !='none'" tal:attributes="id
python:here.get_uclattribute(attobject,
'ucl_additional_name_color')"><span
    tal:content="python:here.get_uclattribute(attobject,
'ucl_additional_name') or nothing" tal:omit-tag="">Website
Subheader</span></span>

But I get the following error:
Error Type: IndexError
error Value: list index is out of range

and the traceback says "Module None, line 7 in get_attributes" is the cause.

Hope you can help.

Jon




> Jon Bowlas wrote at 2005-8-2 19:08 +0100:
>> ...
>>I'm pretty new to python and zope but would like to know how I can adapt
this script below to test to see if nodeValue actually contains a value
>> and
>>if it doesn't then I would like to return a default value I can check
for using my zpt that references this script:
>
> You probably should work through the Python tutorial you will
> find on "http://python.org".
>
>> ...
>>if not nodes:
>>
>>    return ''
>>
>>return nodes[0].childNodes[0].nodeValue
>
> Try:
>
> 	nodeValue = nodes[0].childNodes[0].nodeValue
> 	if not nodeValue: return "someFault"
> 	return nodeValue
>
> --
> Dieter
>
>






More information about the Zope mailing list