Analyse XML avec Sax et récupération des données
Bonjour,
je rencontre un petit problème concernant l'analyse d'un fichier xml avec Sax. Je n'ai pas de soucis quant à la récupération des données souhaitées mais je ne sais pas comment m'y prendre pour intégrer les valeurs récupérées dans une classe pour constituer une liste d'objets. N'étant pas sûr d'être clair dans mes explications, je joins donc un exemple.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| import xml.sax
class handler(xml.sax.ContentHandler):
def __init__(self):
self.CurrentData = ""
def startElement(self, tag, attributes):
self.CurrentData = tag
if tag == "Test":
print("Attrib='" + attributes.getValue("TestId") + "'")
def endElement(self, tag):
self.CurrentData = ""
def characters(self, CurrentData):
if self.CurrentData == "Name":
print 'Value : ' + CurrentData
xml_string='<?xml version="1.0"?>\
<Tests>\
<Test TestId="0001" TestType="CMD">\
<Name>Convert number to string</Name>\
<CommandLine>Examp1.EXE</CommandLine>\
<Input>1</Input>\
<Output>One</Output>\
</Test>\
</Tests>'
xml.sax.parseString(xml_string, handler()) |
Code:
1 2 3 4 5 6 7
| class Fields():
def __init__(self, attrib, value):
self.attrib = attrib
self.value = value
listFields = []
listFields.append(Fields("attrib_recup", "value_recup")) |