Page 1 of 1
MainXMLNode makes crash my app
Posted: Mon Dec 21, 2015 12:57 pm
by DjPoke
Hello
I don't know what kind of mistake i make, but in my function, after "MainNode = MainXMLNode(#XML)", my app freeze.
Any idea ?
Code: Select all
Procedure.i compteQuestionsTypes(file.s)
value.i = 0
If LoadXML(#XML, file)
If XMLStatus(#XML) <> #PB_XML_Success
Message$ = "Erreur dans le fichier XML:" + Chr(13)
Message$ + "Message: " + XMLError(#XML) + Chr(13)
Message$ + "Ligne: " + Str(XMLErrorLine(#XML)) + " Caractère: " + Str(XMLErrorPosition(#XML))
Debug "Erreur: " + Message$
Else
Debug "ok"
MainNode = MainXMLNode(#XML)
Debug "crashed"
If MainNode
QuestionsNode = ChildXMLNode(MainNode)
If GetXMLNodeName(QuestionsNode) = "questions"
BranchNode = ChildXMLNode(QuestionNode)
While BranchNode
value + 1
BranchNode = NextXMLNode(BranchNode)
Wend
EndIf
EndIf
EndIf
FreeXML(#XML)
EndIf
ProcedureReturn value
EndProcedure
Re: MainXMLNode makes crash my app
Posted: Mon Dec 21, 2015 1:14 pm
by Peter
it's difficult to locate the problem without your XML-File.
Greetings ... Peter
Re: MainXMLNode makes crash my app
Posted: Mon Dec 21, 2015 1:19 pm
by DjPoke
This is.
Code: Select all
<?xml version="1.0"?>
<root>
<questions>
<branch name="indefini">
<q>qui</q>
<q>chose</q>
<q>truc</q>
<q>machin</q>
</branch>
<branch name="je">
<q>tu</q>
<q>toi</q>
</branch>
<branch name="tu">
<q>je</q>
<q>moi</q>
</branch>
<branch name="il">
<q>il</q>
<q>lui</q>
<q>l'autre</q>
<q>l'homme</q>
</branch>
<branch name="elle">
<q>elle</q>
<q>l'autre</q>
<q>la femme</q>
</branch>
<branch name="nous">
<q>vous</q>
</branch>
<branch name="vous">
<q>nous</q>
<q>on</q>
</branch>
<branch name="ils">
<q>ils</q>
<q>eux</q>
<q>les autres</q>
<q>les hommes</q>
</branch>
<branch name="elles">
<q>elles</q>
<q>les autres</q>
<q>les femmes</q>
</branch>
</questions>
<answers max="4">
<branch name="indefini">
<a>Bonne question !</a>
<a>Tu dois le savoir...</a>
<a>Réfléchis...</a>
<a>Tu peux le savoir si tu cherches bien.</a>
</branch>
<branch name="je">
<a>Je m'appelle IAS, ce qui veut dire "Intelligence Artificielle Subjective".</a>
<a>Je ne suis pas vraiment intelligent, c'est toi qui interprète.</a>
<a>Je ne pense pas le savoir.</a>
<a>Je ne sais pas, devine...</a>
</branch>
<branch name="tu">
<a>Tu veux savoir ? Cherche bien et tu trouveras.</a>
<a>Tu sais, il faut prendre la vie du bon côté.</a>
<a>Tu penses que c'est possible ?</a>
<a>Oui, tu devrais penser.</a>
</branch>
<branch name="il">
<a>De qui me parles-tu ?</a>
<a>Il devrait chercher une solution.</a>
<a>As-t-il besoin de mon aide ?</a>
<a>Il ne devrait pas faire cela.</a>
</branch>
<branch name="elle">
<a>Est-elle prête à comprendre ?</a>
<a>Elle pourrait ne pas comprendre.</a>
<a>Est-elle assez courageuse pour le faire ?</a>
<a>Elle ne dois pas penser à ça !</a>
</branch>
<branch name="nous">
<a>Nous devrions nous entraider.</a>
<a>Nous pourrions bien faire des erreurs, ça arrive.</a>
<a>Nous ne pouvons pas aller dans ce sens.</a>
<a>Devrions-nous y penser ?</a>
</branch>
<branch name="vous">
<a>Vous êtes assez courageux pour le faire.</a>
<a>Vous n'avez pas la foi en ce moment.</a>
<a>Pourriez-vous me réorienter ?</a>
<a>Vous êtes très malin...</a>
</branch>
<branch name="ils">
<a>Ils ? Qui "ils" ?</a>
<a>Ils devraient croire que c'est possible.</a>
<a>Ils ne devraient pas faire cela.</a>
<a>Que devraient ils penser de ça ?</a>
</branch>
<branch name="elles">
<a>Peuvent-elles au moins s'en rendre compte ?</a>
<a>Elles sont vraiment bien !</a>
<a>Elles ne peuvent pas nous être utiles.</a>
<a>Elle pourraient l'être, en effet...</a>
</branch>
</answers>
</root>
Re: MainXMLNode makes crash my app
Posted: Mon Dec 21, 2015 2:37 pm
by Peter
You need a Callback for LoadXML(). Therefore you have to reorganize your code to something like this:
Code: Select all
Procedure LoadingEvent(Type, Filename.s, ObjectId)
Debug "Type: " + Str(Type)
Debug "Filename$: " + Filename
Debug "ObjectId: " + Str(ObjectId)
If XMLStatus(#XML) <> #PB_XML_Success
; [...]
Else
MainNode = MainXMLNode(#XML)
; [...]
EndIf
FreeXML(#XML)
EndProcedure
Procedure compteQuestionsTypes(file.s)
LoadXML(#XML, file)
EndProcedure
BindEvent(#PB_Event_Loading, @LoadingEvent())
Greetings ... Peter
Re: MainXMLNode makes crash my app
Posted: Mon Dec 21, 2015 3:47 pm
by DjPoke
Thanks for your help.
