Forum eedomus
https://forum.eedomus.com/

Probleme avec PATH
https://forum.eedomus.com/viewtopic.php?f=15&t=9440
Page 1 sur 1
Auteur:  bleauge [ 27 Mars 2020 14:36 ]
Sujet du message:  Probleme avec PATH

Bonjour,

Avec avec un actionneur HTTP j'utilise une requete http qui me retourne un XML
<?xml version='1.0'?><xml><response><Valeur value='111'/></response></xml>
avec le test path j'obtient bien 111
avec le PATH //Valeur/@value
mais quand j'utilise action=periph.caract&periph_id=xxxxxxxxx&show_config=1
j'obtient dans le resultat : ....... "RAW_XPATH": "//Valeur/@value", ......
et non la valeur 111 ?

Depuis 2 jours (de confinement :oops: ) je ne comprend pas
merci de votre aide
Auteur:  KikiFUNstyle [ 27 Mars 2020 14:48 ]
Sujet du message:  Re: Probleme avec PATH

Essaye avec
Code : Tout sélectionner
//value
Auteur:  thrymartin [ 28 Mars 2020 07:56 ]
Sujet du message:  Re: Probleme avec PATH

plutôt //@value

mais ça te renverra //@value vu ce que ça te renvoyait auparavant
Dans la doc du capteur, il est spécifié: il faut que ce soit de la forme
<capture>valeur</capture>

du coup on ne peut plus employer de 'fonctions' xPath... ou alors je ne comprend pas cette spécification (?) mais juste des appels simples avec le nom de la balise d'encadrement.

donc si ton xml vient de toi, un script php quoi
quand tu génères ou que tu captures ton
Valeur value='111'/

captures le dans une variable et enleve tout ce qui n'est pas un chiffre
Code : Tout sélectionner
   $texte      = preg_replace("/[^0-9]/","",$texte);


ou si le xml généré arrive comme ça, juste en appelant une adresse http
alors fait un petit script qui réalise l'appel et fais la tambouille dedans, comme c'est la seule donnée numérique, suffit de tout virer sauf les données numériques. et tu appelles le script au lieu de ta page html
Code : Tout sélectionner
http://localhost/script/?exec=nom_du_script.php(&nomdelavariable=[VAR1])(&....)


et le script minimaliste qui récupère le xml, avec éventuellement l'appel avec les variables VARx..
et lui vire tout ce qui n'est pas chiffre, en l'encadrant avec des balises.

Code : Tout sélectionner
<?php

   $VARx      = getArg('nomdelavariable'); // s'il ya une ou des variable VARx
   $url       = "appel au html".avec éventuellement le nom de/s variables/s VARx;

   $result      = httpQuery($url, 'GET'); // rapatrie le xml
   $result      = preg_replace("/[^0-9]/","",$result); // et lui vire tout ce qui n'est pas chiffre

// et on construit le xml nouveau
$xml = "<Valeur>";
$xml .= $result
$xml .=  "</Valeur>";

echo $xml

?>


et ton xPATH devient //Valeur
Auteur:  bleauge [ 28 Mars 2020 09:07 ]
Sujet du message:  Re: Probleme avec PATH

Merci de me venir en aide,

Ok, dans mon XML j'ai fait
<Valeur>ABC</Valeur>

le test PATH //Valeur me renvoi bien ABC

Mais j'ai toujours "RAW_XPATH": "//Valeur", " et non ABC

Je ne comprend pas, voir
viewtopic.php?f=50&t=6799

Apres pour le recupérer je me debrouille.
Auteur:  merguez07 [ 28 Mars 2020 12:20 ]
Sujet du message:  Re: Probleme avec PATH

salut,

j'ai pas trop compris ton affaire ni ce que tu veux faire. Difficile donc de te répondre.
envois ton code pour clarifier ce que tu veux faire avec periph.carac
Auteur:  bleauge [ 28 Mars 2020 12:37 ]
Sujet du message:  Re: Probleme avec PATH

sur l'envoi, comme indiqué dans l'API
http://192.168.0.101/api/get?action=per ... x_config=1

le resultat est

{ "success": 1, "body":{"periph_id": "1699425", "name": "Audio Module MP3 Bureau", "last_value": "105", "last_value_text": "relais HP OFF", "unit": "", "battery": "", "last_value_change": "2020-03-28 07:55:29", "POLLING": "1", "RAW_URL": "http://192.168.0.XXX/retour", "RAW_XPATH": "//Valeur", "TIMEOUT": "30", "TRUNCATE": "0", "URL": "http://192.168.0.XXX/retour", "VAR1": "30", "VAR2": "147", "VAR3": "004", "XPATH": "//Valeur", "convert": "0", "debug": "0", "hidden_data": "", "homekit_hide": "1", "ignore_errors": "3", "sms_allow": "1"}}

et je voulais récupérer la valeur de 'Valeur' (= RAW XPATH) ci dessus, qui devrai m'indiqué ABC et non //Valeur
Auteur:  merguez07 [ 28 Mars 2020 13:27 ]
Sujet du message:  Re: Probleme avec PATH

je dois être fatigué parceque je comprends toujours pas ta demande. tu veux récupérer "last-value" ?
Auteur:  bleauge [ 28 Mars 2020 13:49 ]
Sujet du message:  Re: Probleme avec PATH

NON de RAW_XPATH
qui doit être ABC
Auteur:  merguez07 [ 28 Mars 2020 14:33 ]
Sujet du message:  Re: Probleme avec PATH

décidemment, rien à faire , je comprends rien à ton histoire d'ABC
Auteur:  xeos [ 28 Mars 2020 14:40 ]
Sujet du message:  Re: Probleme avec PATH

Je pense que tu utilise pas la bonne URL pour recuperer "la valeur du retour XPATH" comme tu dis.

http://localhost/api/get?action=periph. ... id=XXXXXXX

Xpath : //last_value
Auteur:  bleauge [ 28 Mars 2020 15:40 ]
Sujet du message:  Re: Probleme avec PATH

viewtopic.php?f=50&t=6799

merguez07, cela doit te rappeler quelque chose ;)
Auteur:  bleauge [ 28 Mars 2020 15:41 ]
Sujet du message:  Re: Probleme avec PATH

erreur

voir
viewtopic.php?f=50&t=6799&p=62752#p62752
Auteur:  benj70b [ 28 Mars 2020 21:27 ]
Sujet du message:  Re: Probleme avec PATH

en fait, il n'y a aucun problème

bleauge a écrit:Avec avec un actionneur HTTP j'utilise une requete http qui me retourne un XML
<?xml version='1.0'?><xml><response><Valeur value='111'/></response></xml>
avec le test path j'obtient bien 111
avec le PATH //Valeur/@value

=> a ce niveau le xpath //Valeur/@value te permet de retourner la valeur soit 111

bleauge a écrit:mais quand j'utilise action=periph.caract&periph_id=xxxxxxxxx&show_config=1
j'obtient dans le resultat : ....... "RAW_XPATH": "//Valeur/@value", ......
et non la valeur 111 ?

=> la : tu as la configuration de ton périphérique donc le xpath //RAW_XPATH retourne la configuration pour lire la valeur soit //Valeur/@value


xeos a écrit:Je pense que tu utilise pas la bonne URL pour recuperer "la valeur du retour XPATH" comme tu dis.
http://localhost/api/get?action=periph.value&periph_id=XXXXXXX
Xpath : //last_value


=> comme l'indique xeos si tu veux la valeur il faut utiliser periph.value et //last_value
Auteur:  bleauge [ 30 Mars 2020 08:28 ]
Sujet du message:  Re: Probleme avec PATH

OK, j'ai compris,
merci à tous
Page 1 sur 1 Le fuseau horaire est UTC+1 heure