Annotation of OSAS/OSA_system/OSAS_helpers.py, revision 1.1

1.1     ! dwinter     1: """ some helpfull methods """
        !             2: import xml.dom.minidom
        !             3: import os.path
        !             4: import re
        !             5: 
        !             6: def getText(nodelist):
        !             7:     
        !             8:     rc = ""
        !             9:     for node in nodelist:
        !            10:     
        !            11:        if node.nodeType == node.TEXT_NODE:
        !            12:            rc = rc + node.data
        !            13:     return rc
        !            14: 
        !            15: def changeNodesInIndexMeta(path,node,subnodes,parent=None,nodeAttributes=None):
        !            16:     """node mit subnodes wird in index.meta in path eingetragen bzw. ausgetauscht"""
        !            17: 
        !            18:     if os.path.exists(path+"/index.meta"):
        !            19:         inFile=file(path+"/index.meta")
        !            20:         f=inFile.read()
        !            21:         inFile.close()
        !            22:     else:
        !            23:         f="""<resource type="ECHO" version="1.0"></resource>"""
        !            24:     
        !            25:     
        !            26:     dom=xml.dom.minidom.parseString(f)
        !            27:     root=dom.getElementsByTagName("resource")[0]
        !            28:     
        !            29:     if parent:
        !            30: 
        !            31:         try:
        !            32:             root=root.getElementsByTagName(parent)[0]
        !            33:         except:
        !            34:             #print "parent",parent
        !            35:             nodeNew=dom.createElement(parent)
        !            36:             root.appendChild(nodeNew)
        !            37:             root=root.getElementsByTagName(parent)[0]
        !            38:     
        !            39:     # check if node already exist
        !            40: 
        !            41:     nodeOld=root.getElementsByTagName(node)
        !            42:     
        !            43:     if nodeOld: # if yes -> delete it
        !            44:         root.removeChild(nodeOld[0]).unlink()
        !            45: 
        !            46:     if node=="":
        !            47:         for subnode in subnodes.keys():
        !            48: 
        !            49:             namenode=dom.createElement(re.sub(r' ','-',subnode))
        !            50:             namenodetext=dom.createTextNode(subnodes[subnode].decode("utf8"))
        !            51:             namenode.appendChild(namenodetext)
        !            52:             root.appendChild(namenode)
        !            53: 
        !            54:     else:
        !            55:         nodeNew=dom.createElement(node) # create new
        !            56: 
        !            57:         if nodeAttributes:
        !            58:             for attribute in nodeAttributes.keys():
        !            59:                 #print attribute,nodeAttributes[attribute]
        !            60:                 nodeNew.setAttribute(attribute,nodeAttributes[attribute])
        !            61: 
        !            62:         for subnode in subnodes.keys():
        !            63: 
        !            64:             namenode=dom.createElement(re.sub(r' ','-',subnode))
        !            65:             namenodetext=dom.createTextNode(subnodes[subnode].decode("utf8"))
        !            66:             namenode.appendChild(namenodetext)
        !            67:             nodeNew.appendChild(namenode)
        !            68: 
        !            69: 
        !            70:         root.appendChild(nodeNew)
        !            71: 
        !            72:     writefile=file(path+"/index.meta","w")
        !            73:     writefile.write(dom.toxml().encode('utf-8'))
        !            74:     writefile.close()
        !            75: 
        !            76: 
        !            77: 
        !            78:     
        !            79:     
        !            80:     

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>