French Parser XML

Ommadawn

Member
Licensed User
Longtime User
Bonjour

Je viens de me lancer dans V4A. j'ai profité de la promo pour me lancer. j'ai fait ma première appli toute simple.
C'est excellent! Ils ont fait du bon boulot.

Maintenant, je suis en train de me lancer dans la récupération d'info XML sur le net. l'adresse demandée génère une page au format XML

J'ai utilisé HttpUtils pour récupérer un imputStream que je parse avec SaxParser. Ca marche, je parse bien tout mon code XML.

Mais y a un truc que je pige pas. Dans la sub Parser_EndElement, pour le débugage, j'ai mis un ToastMessageShow ("test ",False)
Ma sub JobDone est bien exécutée une seule fois

Quand je lance mon appli, toutes les secondes, j'ai un toast qui apparait.
Parser_EndElement tourne donc en boucle? Mon appli ne va t-elle pas consommer trop de batterie?

J'ai fais le même test du toast avec l'exemple donné, et j'ai le même résultat.
Y a t il un moyen que la routine s’arrête une fois l'XML complètement parsé?

En installant une appli qui indique l'utilisation CPU, j'ai pas vu une utilisation importante, je ne comprends pas tout.

Merci
Ommadawn

Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim b4a As String
b4a = "URL qui genere le XML"
End Sub

Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim title
Dim ListView1 As ListView
Dim parser As SaxParser
End Sub

Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
parser.Initialize
End If
Activity.LoadLayout("Main")
HttpUtils.CallbackActivity = "Main" 'Current activity name.
HttpUtils.CallbackJobDoneSub = "JobDone"
HttpUtils.Download("Job1", b4a)
ToastMessageShow ("lancement",False)
End Sub

Sub JobDone (Job As String)
Dim s As InputStream
If HttpUtils.IsSuccess(b4a) Then
s = HttpUtils.GetInputStream(b4a)
parser.Parse(s, "parser")
End If
End Sub
Sub Parser_EndElement (Uri As String, Name As String, Text As StringBuilder)
If parser.Parents.IndexOf("prevision") > -1 Then
If Name = "dateIso" Then
title = Text.ToString
End If
End If
If Name = "prevision" Then
ListView1.AddSingleLine2(title, "") 'add the title as the text and the link as the value
End If
End Sub
 
Last edited:

panthere31

New Member
Licensed User
Longtime User
salut,

as tu trouvé une solution à ton pb ?

je me jette dans ce type d'appli et j'étudie ton code mais il semble ne pas marcher chez moi :(

stephane
 

Ommadawn

Member
Licensed User
Longtime User
Pour moi ca fonctionne, et apparemment ca ne consomme pas de CPU.
Le code que j'ai mis c'est juste main. je suis parti de l'exemple httputils.

Je ne me suis pas remis dessus depuis, je vais finir l'appli et voir a l'utilisation.
 
Top