Bonjour , je bosse sur Debian Lenny, je dois parser un fichier xml contenant des attributs exemple

Code : 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
<racine>
	<repertoire nom="toto">
		<repertoire cache="1" nom=".amsn">
			<repertoire nom="logs"/>
			<repertoire nom="plugins"/>
			<repertoire nom="skins"/>
			<repertoire nom="smileys"/>
			<repertoire nom="webcam"/>
			<repertoire nom="winks">
				<repertoire nom="cache">
					<repertoire nom="tmp"/>
				</repertoire>
			</repertoire>
			<fichier extension=".xml" nom="abook"/>
			<fichier extension=".xml" nom="config"/>
			<fichier extension=".xml" nom="gconfig"/>
			<fichier extension=".xml" nom="langlist"/>
			<fichier extension="" nom="profiles"/>
			<fichier extension=".xml" nom="states"/>
		</repertoire></racine>
J'utilise SPE et donc python pour permettre a terme d'afficher la liste des noms de fichier d'extension et de repertoire. Pour ceci j'ai fait:

Code : 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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import xml.sax
import xml.parsers
 
class RepertoireHandler:
 
    def __init__ (self,searchRepertoire):
        self.searchRepertoire=searchRepertoire
        self.isRepertoireNom, self.isRepertoireCache='',''
 
 
    def descRepertoire(self, nom):
 
        if nom == 'repertoire':     
            self.isRepertoireNom = self.nom
            self.isRepertoireCache = self.cache
            print 'Nom de repertoire:' , self.isRepertoireNom, 'Cache de repertoire:', self.isRepertoireCache
 
 
class FichierHandler:
 
    def __init__ (self,searchFichier):
        self.searchFichier= searchFichier;
        self.isFichierNom,self.isFichierExtension='',''
 
 
    def descFichier(nom, extension):  
 
        if nom == 'fichier':
            self.isFichierExtension=self.get('extension',"")
            self.isFichierNom =self.get('nom',"");
            print 'Nom de fichier:' , self.fichierNom, 'extension de fichier:', self.fichierExtension
 
        return
 
 
class main:
 
    def main():
        searchRepertoire='repertoire'
        nom=''
        parser = xml.sax.make_parser()
        RepertoireHandler(searchRepertoire).descRepertoire(nom)
        parser.setContentHandler(repHandler)
        parser.parse(open('/home/gregunix/Essais/Essai3/XmlPerm.xml'))
 
        searchFichier='fichier'
        nom=''
        parser = xml.sax.make_parser()
        FichierHandler(searchFichier).descFichier(nom)
        parser.setContentHandler(ficHandler)
        parser.parse(open('/home/gregunix/Essais/Essai3/XmlPerm.xml'))
 
    if __name__ == "__main__":
        main()
Pouvez vous me dire ce qui cloche?

Un grand merci d'avance