Package reflectometry :: Package model1d :: Package profileview :: Module getData2XML

Source Code for Module reflectometry.model1d.profileview.getData2XML

 1  from xml.dom import minidom 
 2  from xml.dom.minidom import getDOMImplementation as getDOMImp 
 3  from reflectometry.model1d.model.auxs import readdata 
 4   
 5   
6 -class GetData2XML:
7 """ 8 When we create a xml but containing NO data. 9 We use this class to add data Element to it 10 """
11 - def __init__(self, 12 FileNameOrStringName, 13 IsFromFile=0 14 ):
15 #----------------------------- 16 if IsFromFile == 1: 17 self.xmldoc = minidom.parse(FileNameOrStringName) 18 else: 19 self.xmldoc = minidom.parseString(FileNameOrStringName) 20 #------------------------------ 21 self.inlineData = "" 22 self.XOR = self.xmldoc.getElementsByTagName('Multiplexor')[0] 23 self.UORs = self.XOR.getElementsByTagName('Uniplexor') 24 self.xmldoc = self.UORs[0] # The first uor or not? 25 self.data = self.xmldoc.getElementsByTagName('Data') 26 self.datafile= self.data[0].getAttribute('Name') 27 self.setNameAtr()
28 #self.setData() 29 30
31 - def getXOR(self):
32 return self.XOR
33 34
35 - def getData(self):
36 return self.data
37 38
39 - def setInlineData(self, 40 inlineData 41 ):
42 self.inlineData = inlineData 43 self.setData_Inline()
44 45
46 - def setNameAtr(self):
47 d = self.getData()[0] 48 d.setAttribute('Name','inline')
49 50
51 - def setData_Inline(self ):
52 xdoc = getDOMImp().createDocument(None, "Notitle", None) 53 doc = self.getData()[0] 54 doc.appendChild( xdoc.createTextNode( self.inlineData ) )
55 56
57 - def setData(self):
58 xdoc = getDOMImp().createDocument(None, "Notitle", None) 59 doc = self.getData()[0] 60 if 1: 61 data = readdata( self.datafile ) 62 doc = self.getData()[0] 63 doc.appendChild( xdoc.createTextNode( data) ) 64 else: 65 if self.datafile[-1] =='A': endCC = ['A','B','C','D'] 66 else: endCC = ['a','b','c','d'] 67 for i in range(4): 68 data = readdata( self.datafile[:-1]+endCC[i] ) 69 if i < 3 : 70 data += '#' 71 doc.appendChild( xdoc.createTextNode( data) )
72 73
74 - def getXML(self):
75 return self.XOR.toxml()
76 77 78 79 # --------------------------------------------------------
80 -def getData(fileName):
81 p = GetData2XML( fileName, 82 IsFromFile = 1 83 ) 84 85 return p.getData()[0].childNodes[0].data.strip()
86 87 88 # -------------------------------------------------------
89 -def getStrData(xmlStr 90 ):
91 p = GetData2XML( xmlStr ) 92 93 return p.getData()[0].childNodes[0].data.strip()
94