MainXMLNode makes crash my app

Just starting out? Need help? Post your questions and find answers here.
User avatar
DjPoke
Posts: 22
Joined: Sat Dec 19, 2015 5:27 pm
Location: France (Corsica)
Contact:

MainXMLNode makes crash my app

Post 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
My Freewares here :
http://retro-bruno.fr/
User avatar
Peter
Posts: 1197
Joined: Mon Feb 24, 2014 10:17 pm
Location: 127.0.0.1:9080
Contact:

Re: MainXMLNode makes crash my app

Post by Peter »

it's difficult to locate the problem without your XML-File.

Greetings ... Peter
User avatar
DjPoke
Posts: 22
Joined: Sat Dec 19, 2015 5:27 pm
Location: France (Corsica)
Contact:

Re: MainXMLNode makes crash my app

Post 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>
My Freewares here :
http://retro-bruno.fr/
User avatar
Peter
Posts: 1197
Joined: Mon Feb 24, 2014 10:17 pm
Location: 127.0.0.1:9080
Contact:

Re: MainXMLNode makes crash my app

Post 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
User avatar
DjPoke
Posts: 22
Joined: Sat Dec 19, 2015 5:27 pm
Location: France (Corsica)
Contact:

Re: MainXMLNode makes crash my app

Post by DjPoke »

Thanks for your help. :)
My Freewares here :
http://retro-bruno.fr/
Post Reply