Annotation of OSAS/OSA_system/OSAS_helpers.py, revision 1.3
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:
1.2 dwinter 23: f="""<resource type="ECHO" version="1.1"></resource>"""
1.1 dwinter 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:
42: if node=="":
43: for subnode in subnodes.keys():
44:
1.2 dwinter 45: nodeOld=root.getElementsByTagName(subnode)
1.3 ! dwinter 46:
1.2 dwinter 47: if nodeOld: # if yes -> delete it
1.3 ! dwinter 48: try:
! 49: root.removeChild(nodeOld[0]).unlink()
! 50: except:
! 51: """nothing"""
1.2 dwinter 52:
1.1 dwinter 53: namenode=dom.createElement(re.sub(r' ','-',subnode))
54: namenodetext=dom.createTextNode(subnodes[subnode].decode("utf8"))
55: namenode.appendChild(namenodetext)
56: root.appendChild(namenode)
57:
58: else:
1.2 dwinter 59: nodeOld=root.getElementsByTagName(node)
60:
61: if nodeOld: # if yes -> delete it
62: root.removeChild(nodeOld[0]).unlink()
63:
1.1 dwinter 64: nodeNew=dom.createElement(node) # create new
65:
66: if nodeAttributes:
67: for attribute in nodeAttributes.keys():
68: #print attribute,nodeAttributes[attribute]
69: nodeNew.setAttribute(attribute,nodeAttributes[attribute])
70:
71: for subnode in subnodes.keys():
72:
73: namenode=dom.createElement(re.sub(r' ','-',subnode))
74: namenodetext=dom.createTextNode(subnodes[subnode].decode("utf8"))
75: namenode.appendChild(namenodetext)
76: nodeNew.appendChild(namenode)
77:
78:
79: root.appendChild(nodeNew)
80:
81: writefile=file(path+"/index.meta","w")
82: writefile.write(dom.toxml().encode('utf-8'))
83: writefile.close()
1.2 dwinter 84: os.chmod(path+"/index.meta",0664)
1.1 dwinter 85:
86:
87:
88:
89:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>