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 Analyse fichier xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 Liste d'objets : Sélectionner tout - Visualiser dans une fenêtre à part
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"))