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