ZZEBULON
Messages postés17Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention23 février 2010
-
20 févr. 2010 à 18:02
ZZEBULON
Messages postés17Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention23 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 !
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 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
ZZEBULON
Messages postés17Date d'inscriptionmardi 1 juillet 2003StatutMembreDernière intervention23 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