Page 1 sur 1

recuperation valeur roomba

Publié : 13 août 2017, 10:17
par berserk
bonjour j'appel a l'aide car je n'arrive pas a recuperer des valeurs dans un xml. J'ai essayé en s'inpirant d'un script sur un autre cas mais impossible.

voila je recupere un xml de cette forme

Code : Tout sélectionner

  
<response>
<r0><name>'Bumps Wheeldrops'</name><value>3</value></r0>
<r1><name>'Wall'</name><value>0</value></r1>
<r2><name>'Cliff Left'</name><value>1</value></r2>
<r3><name>'Cliff Front Left'</name><value>1</value></r3>
<r4><name>'Cliff Front Right'</name><value>1</value></r4>
<r5><name>'Cliff Right'</name><value>1</value></r5>
<r6><name>'Virtual Wall'</name><value>0</value></r6>
<r7><name>'Motor Overcurrents'</name><value>0</value></r7>
<r8><name>'Dirt Detector - Left'</name><value>0</value></r8>
<r9><name>'Dirt Detector - Right'</name><value>0</value></r9>
<r10><name>'Remote Opcode'</name><value>0</value></r10>
<r11><name>'Buttons'</name><value>0</value></r11>
<r12><name>'Distance'</name><value>0</value></r12>
<r13><name>'Angle'</name><value>0</value></r13>
<r14><name>'Charging State'</name><value>3</value></r14>
<r15><name>'Voltage'</name><value>16699</value></r15>
<r16><name>'Current'</name><value>63</value></r16>
<r17><name>'Temperature'</name><value>32</value></r17>
<r18><name>'Charge'</name><value>2696</value></r18>
<r19><name>'Capacity'</name><value>2696</value></r19>
</response>
je veux recuperer la valeur de r14
je fais donc une boucle en utilisant

Code : Tout sélectionner

 if string.find(line,"'Charge'") then
mais celui ci me retourne 'Charge'2696. J'ai essayé de le passer par une fonction tonumber() mais celle ci me retourne rien

plan B
je recupere un xml de cette forme

Code : Tout sélectionner

<response>
<r0>3</r0>
<r1>0</r1>
<r2>1</r2>
<r3>1</r3>
<r4>1</r4>
<r5>1</r5>
<r6>0</r6>
<r7>0</r7>
<r8>0</r8>
<r9>0</r9>
<r10>0</r10>
<r11>0</r11>
<r12>0</r12>
<r13>0</r13>
<r14>3</r14>
<r15>16699</r15>
<r16>63</r16>
<r17>32</r17>
<r18>2696</r18>
<r19>2696</r19>
</response>
je veux recuperer la valeur de r14

j'utilise toujours le meme principe une boucle avec ce code if string.find(line,"r14") then. La la valeur de line est bien 3 mais quand je veux utiliser la variable de line dans une boucle if(line == 3) then cette condition n'est jamais vrai. Je pense que c'est du au fait que line est consideré comme chaine de caratere et non un entier. j'ai donc essayer encore la fonction tonumber(line) mais celle ci me retourne rien.

Voila si vous avez des idées ou hypothese je suis preneur et surtout desesperé :D


merci d'avance et bon dimanche

Re: recuperation valeur roomba

Publié : 13 août 2017, 11:25
par berserk
je reponds a moi meme....

if string.match(line, "3") then


yeah