Bonjour
J'ai implémenté un parseur avec l'API SAX afin de parcourir un document XML dont voici un exemple de configuration :
Ce que je voudrais c'est afficher le détail d'une balise uniquement si elle n'est pas ignorée. Par exemple si je rencontre une balise "A" dont l'id est "toto" je souhaite ignorer les fils de la dite balise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <MonDoc> <A id="toto"> <nom>JEAN</nom> <age>12</age> </A> <A id="admin"> <nom>PIERRE</nom> <age>30</age> </A> </MonDoc>
Afin d'obtenir un affichage semblable à celui-ci :
Actuellement j'ignore les traitements au sein des évènements déclenchés au cours du parcours des balises enfants de celle dont l'attribut "id" est "toto" puis rétablit le fonctionnement normal au déclenchement de l'évenèment EndElement de "A".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 balise trouvée à ignorer : toto balise trouvée : admin nom : PIERRE age : 30
Toutefois, je trouve ce fonctionnement assez lent puisque le parseur continue de déclencher les évènements. C'est pourquoi je souhaiterais savoir si l'API SAX propose une manière élégante d'ignorer les balises dans cette condition à savoir en omettant le déclenchement des évènements pour les sous-éléments d'une balise donnée. De plus je sais qu'avec le modèle DOM, on peut faire ce traitement de manière élégante mais son utilisation à proscrire étant donnée la taille volumineuse du fichier XML et le peu de RAM à disposition.
Donc si quelqu'un a une idée lumineuse, je suis preneur.
Merci par avance et bon développement à tous.
SillyCoder
Partager