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

XPath avec retour de ligne
https://forum.eedomus.com/viewtopic.php?f=18&t=8389
Page 1 sur 1
Auteur:  jmvong [ 10 Avr 2019 19:50 ]
Sujet du message:  XPath avec retour de ligne

Bonjour,

Est ce que quelqu'un a une idée si il est possible d'insérer dans le XML un retour à la ligne qui soit interprété par le XPath ?
Par exemple les stars du forum Influeman et autre Merguez.... :lol:

J'utilisais "\n" qui marche pour le XML utlisé entre chaque balise
mais pas à l'intérieur d'une balise le XPath fait alors une erreur

Et si oui comment le faire ?

Cordialement
JMVong
Auteur:  xeos [ 10 Avr 2019 21:02 ]
Sujet du message:  Re: XPath avec retour de ligne

Salut,

Il faut faire un concat de valeur avec entre un retour à la ligne.

Ex. concat('Eau : ',//temperature,'°C','<br> ','En horaire : ',//Horaire) - Le <br> est le retour à la ligne..
Auteur:  RAR69 [ 11 Avr 2019 22:27 ]
Sujet du message:  Re: XPath avec retour de ligne

Merci @XEOS pour l'astuce. C'est opérationnel...
Conso compteur Chauffage.PNG
Conso compteur Chauffage.PNG (21.86 Kio) Consulté 6030 fois

Roland
Auteur:  jmvong [ 12 Avr 2019 08:11 ]
Sujet du message:  Re: XPath avec retour de ligne

xeos a écrit:Salut,

Il faut faire un concat de valeur avec entre un retour à la ligne.

Ex. concat('Eau : ',//temperature,'°C','<br> ','En horaire : ',//Horaire) - Le <br> est le retour à la ligne..


Je suis moins doué ....
J'y arrive pas
concat ne semble pas géré dans les scripts eedomus, c'est probablement évident pour vous tous .... :cry:
j'ai utilisé l'operateur '.'
Voici le retour du XML / Le XPATH est en error
Untitled.jpg
Untitled.jpg (138.62 Kio) Consulté 6021 fois

Voici mon code :
$xml .= "<STATUT>".$mesure;
if ($mesure == "MISE A JOUR ARROSAGE A 18h") {
$xml .= '<br>';
if ($program <> "SUSPENDU") {
for ($i=1; $i <= $nbre_electrovanne; $i++) {
$api_electrovanne = $tab_api_current_arrosage['api_electrovanne'.$i];
$nom_electrovanne = $tab_api_current_arrosage['nom_electrovanne'.$i];
$debut_electrovanne = $tab_api_current_arrosage['debut_'.$i];
$duree_electrovanne = $tab_api_current_arrosage['duree_'.$i] * $tab_api_current_arrosage['coef_arrosage'];
$xml .= ' - '.$nom_electrovanne.' commence a '.$debut_electrovanne.' pendant '.$duree_electrovanne.' mn <br>';
}
}
else {
$xml .= 'ARROSAGE '.$program;
}
}
$xml .= "</STATUT>\n";
Auteur:  jmvong [ 12 Avr 2019 08:25 ]
Sujet du message:  Re: XPath avec retour de ligne

J'ai aussi essaye avec la balise <br />.
Il n'y a plus d'erreur mais pas de retour à la ligne
Auteur:  jmvong [ 12 Avr 2019 10:17 ]
Sujet du message:  Re: XPath avec retour de ligne

RAR69 a écrit:Merci @XEOS pour l'astuce. C'est opérationnel...
Conso compteur Chauffage.PNG

Roland



Pourriez vous mettre sur le forum le code ou la partie du code qui marche pour vous ?

Merci d'avance
Auteur:  influman [ 12 Avr 2019 10:20 ]
Sujet du message:  Re: XPath avec retour de ligne

jmvong a écrit:J'ai aussi essaye avec la balise <br />.
Il n'y a plus d'erreur mais pas de retour à la ligne


tu ne peux pas inclure le <br> dans la valeur retour du script, il ne sera pas correctement interprete en sortie.

J'ai un astuce pour faire ça, j'écris dans la valeur retournée un charabia du genre ."#*!".
et dans le xpath du périphérique, tu fais un change:

/STATUT change('#*!', '<br>')

c'est ce qui est fait par exemple dans le script Délestage avec le caractère "|". Ceux qui ne veulent pas du saut de ligne enlèvent le change du xpath
Auteur:  jmvong [ 12 Avr 2019 13:20 ]
Sujet du message:  Re: XPath avec retour de ligne

influman a écrit:
jmvong a écrit:J'ai aussi essaye avec la balise <br />.
Il n'y a plus d'erreur mais pas de retour à la ligne


tu ne peux pas inclure le <br> dans la valeur retour du script, il ne sera pas correctement interprete en sortie.

J'ai un astuce pour faire ça, j'écris dans la valeur retournée un charabia du genre ."#*!".
et dans le xpath du périphérique, tu fais un change:

/STATUT change('#*!', '<br>')

c'est ce qui est fait par exemple dans le script Délestage avec le caractère "|". Ceux qui ne veulent pas du saut de ligne enlèvent le change du xpath


Un grand merci !!!
Auteur:  RAR69 [ 12 Avr 2019 13:58 ]
Sujet du message:  Re: XPath avec retour de ligne

Pour être certain de l'affichage correct de n'importe quel symbol unicode, donc retour à la ligne en particulier, essaye d'utiliser la syntaxe générique suivante :
&#x...;
Où tu remplace les 3 points (...) par le code unicode hexadécimal du caractère voulu. (référence: http://www.w3.org/TR/2004/REC-xml-20040 ... references, chapitre 4.1 Character and Entity References )

Pour trouver la liste des codes hexadécimaux de l'unicode, tu dois aller à l'url suivante:
http://www.unicode.org/charts/

et donc cela donne : &#x000D pour le retour chariot...
Je ne garantie pas que cela fonctionne mais si cela peut aider. Moi je m'en sert pour afficher le caractère du symbole de l'EURO € dan un XPATH : &#x20ac
Exemple : concat(/MYELEC/ANNEE_HC * 1000, ' kWh (', /MYELEC/ANNEE_HCC * 1000, ' &#x20ac)')
Roland
Auteur:  jmvong [ 14 Avr 2019 08:00 ]
Sujet du message:  Re: XPath avec retour de ligne

Bonjour,
Merci a tous
La méthode "influeman" marche.... sur le portail web mais pas sur l'interface mobile android.
Je vais tester la methode "RAR69"

Par contre est-ce que quelqu'un a une idée de la longueur autorisés du xPath repris dans l'affichage de eedomus ?
Auteur:  merguez07 [ 14 Avr 2019 09:22 ]
Sujet du message:  Re: XPath avec retour de ligne

jmvong a écrit:Par contre est-ce que quelqu'un a une idée de la longueur autorisés du xPath repris dans l'affichage de eedomus ?


Salut jmvong,

si ta question est : Quel est le nombre de caractères possible affichable suite à une demande Xpath, j'ai réussi à en afficher environ 1750.
Auteur:  jmvong [ 15 Avr 2019 12:57 ]
Sujet du message:  Re: XPath avec retour de ligne

merguez07 a écrit:
jmvong a écrit:Par contre est-ce que quelqu'un a une idée de la longueur autorisés du xPath repris dans l'affichage de eedomus ?


Salut jmvong,

si ta question est : Quel est le nombre de caractères possible affichable suite à une demande Xpath, j'ai réussi à en afficher environ 1750.


Merci
J avais l impreswion que ça bloquait vers les 70/80 caractères...
Ca doit être chose...
Page 1 sur 1 Le fuseau horaire est UTC+1 heure