'Creates new node (if not already present) with name "tag" and (optionally) attributes "attrs"
and sets it\'s CDATA to string "val".'

def setTagData(self, tag, val, attrs={}):

    try:
        self.getTag(tag, attrs).setData(ustr(val))
    except:
        self.addChild(tag, attrs, payload=[ustr(val)])
