Stopper parseur SAX

ZZEBULON Messages postés 17 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 23 février 2010 - 20 févr. 2010 à 18:02
ZZEBULON Messages postés 17 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 23 février 2010 - 23 févr. 2010 à 18:24
Bonjour à toutes et tous,

Voila mon pb.

Je développe en vb6 une petite appli qui doit récupérer quelques fichiers xml parmi d'autres (selon le contenu du xml).
Pour arriver à mes fins, je parse un par un les xml (une form et un module de classe pour le ContentHandler).
Je sais dès la 3ème balise si le fichier doit être retenu ou pas.
S'il ne doit pas être retenu, je voudrais stopper le parseur SAX pour passer au xml suivant.
Mais je ne trouve pas l'instruction pour mettre fin au parseur.
Avez-vous le bout de code qui me manque !

Merci d'avance.

ZZEBULON

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 févr. 2010 à 20:39
Bonjour,
et ton code (celui que l'on ne voit pas) tu ne crois pas qu'il serait indispensable pour savoir quand et à quelles conditions abandonner ?
Moi, je crois bien que oui !


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 févr. 2010 à 20:48
Car, par exemple, on ne quitte pas une boucle For comme un quitte une boucle loop (entre autres...)
Question subsidiaire : es-tu vraiment certain de développer sous VB6 (le présent thème) ? je n'en suis pas vraiment certain ...

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
ZZEBULON Messages postés 17 Date d'inscription mardi 1 juillet 2003 Statut Membre Dernière intervention 23 février 2010
23 févr. 2010 à 18:24
On dispose d'un fichier D:\test\test.xml qui contient une et une seule balise REF avec un attribut ANNEE. Si ANNEE antérieure à 2008, une variable publique bolTEST devra avoir la valeur True dans le prog.
Le code simplifié est le suivant:

Dans un module:

Public bolTEST As Boolean

Public Sub TESTExml()
Dim reader As New SAXXMLReader60
Dim contentHandler As New ContentHandlerImpl

Set reader.contentHandler = contentHandler

bolTEST = False
reader.parseURL "D:test\test.xml"

End Sub

Dans un module de classe nommé ContentHandlerImpl:

Implements IVBSAXContentHandler

Private Sub IVBSAXContentHandler_startElement(strNamespaceURI As _
String, strLocalName As String, strQName As _
String, ByVal oAttributes As MSXML2.IVBSAXAttributes)

If strLocalName = "REF" Then
'ici on teste si l'attribut de l'élément REF est antérieur à 2008
If oAttributes.getValueFromName("ANNEE") < 2008 Then
bolTEST = True 'ANNEE antérieure à 2008, mise à jour de la variable publique
'Et arrêt du parseur mais comment arrêter le parseur ?
End If
End If


End Sub




Private Sub IVBSAXContentHandler_characters(strChars As String)

End Sub

Private Property Set IVBSAXContentHandler_documentLocator(ByVal RHS _
As MSXML2.IVBSAXLocator)

End Property


Je crois que je vais générer une erreur pour stopper le parseur. Ce n'est pas glorieux comme procédé mais ça devrait marcher.
ZZEBULON
0
Rejoignez-nous