E5XML/XMLStreamReaderBase.py

changeset 576
ad8fdac5aff5
parent 575
5a008db344ea
child 577
ef42a81128ca
equal deleted inserted replaced
575:5a008db344ea 576:ad8fdac5aff5
59 while not self.atEnd(): 59 while not self.atEnd():
60 self.readNext() 60 self.readNext()
61 if self.isStartElement(): 61 if self.isStartElement():
62 try: 62 try:
63 if self.name() == "none": 63 if self.name() == "none":
64 val = None 64 val = None
65 elif self.name() == "int": 65 elif self.name() == "int":
66 val = int(self.readElementText()) 66 val = int(self.readElementText())
67 elif self.name() == "bool": 67 elif self.name() == "bool":
68 b = self.readElementText() 68 b = self.readElementText()
69 if b == "True": 69 if b == "True":
70 val = True 70 val = True
71 else: 71 else:
72 val = False 72 val = False
73 elif self.name() == "float": 73 elif self.name() == "float":
74 val = float(self.readElementText()) 74 val = float(self.readElementText())
75 elif self.name() == "complex": 75 elif self.name() == "complex":
76 real, imag = self.readElementText().split() 76 real, imag = self.readElementText().split()
77 val = float(real) + float(imag)*1j 77 val = float(real) + float(imag)*1j
78 elif self.name() == "string": 78 elif self.name() == "string":
79 val = self.readElementText() 79 val = self.readElementText()
80 elif self.name() == "bytes": 80 elif self.name() == "bytes":
81 by = bytes( 81 by = bytes(
82 [int(b) for b in self.readElementText().split(",")]) 82 [int(b) for b in self.readElementText().split(",")])
83 val = by 83 val = by
84 elif self.name() == "bytearray": 84 elif self.name() == "bytearray":
85 by = bytearray( 85 by = bytearray(
86 [int(b) for b in self.readElementText().split(",")]) 86 [int(b) for b in self.readElementText().split(",")])
87 val = by 87 val = by
88 elif self.name() == "tuple": 88 elif self.name() == "tuple":
89 val = self.__readTuple() 89 val = self.__readTuple()
90 return val
90 else: 91 else:
91 self._skipUnknownElement() 92 self._skipUnknownElement()
92 except ValueError as err: 93 except ValueError as err:
93 self.raiseError(str(err)) 94 self.raiseError(str(err))
94 95
95 if self.isEndElement(): 96 if self.isEndElement():
96 return val 97 if self.name() in ["tuple"]:
98 return None
99 else:
100 return val
97 101
98 def __readTuple(self): 102 def __readTuple(self):
99 """ 103 """
100 Private method to read a Python tuple. 104 Private method to read a Python tuple.
101 105
102 @return Python tuple 106 @return Python tuple
103 """ 107 """
104 l = [] 108 l = []
105 while not self.atEnd(): 109 while not self.atEnd():
106 val = self._readBasics() 110 val = self._readBasics()
107 if self.isEndElement() and self.name() == "tuple": 111 if self.isEndElement() and self.name() == "tuple" and val is None:
108 return tuple(l) 112 return tuple(l)
109 else: 113 else:
110 l.append(val) 114 l.append(val)

eric ide

mercurial