File:  [Repository] / OSAS / OSA_system / OSAS_helpers.py
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Dec 23 13:43:10 2003 UTC (20 years, 6 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
archiver

    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>