Package reflectometry :: Package model1d :: Package profileview :: Module addData2XML

Source Code for Module reflectometry.model1d.profileview.addData2XML

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