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
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]
25 self.data = self.xmldoc.getElementsByTagName('Data')
26 self.datafile= self.data[0].getAttribute('Name')
27 self.setNameAtr()
28
29
30
33
34
37
38
44
45
47 d = self.getData()[0]
48 d.setAttribute('Name','inline')
49
50
52 xdoc = getDOMImp().createDocument(None, "Notitle", None)
53 doc = self.getData()[0]
54 doc.appendChild( xdoc.createTextNode( self.inlineData ) )
55
56
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
75 return self.XOR.toxml()
76
77
78
79
86
87
88
94