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

XPATH avec fichier XML
https://forum.eedomus.com/viewtopic.php?f=15&t=1251
Page 1 sur 1
Auteur:  DomotiFred [ 25 Sep 2013 18:02 ]
Sujet du message:  XPATH avec fichier XML

Bonjour,

Je viens de faire installer une pompe à chaleur.
Je peux avoir accès à la centrale de cette pompe par IP.
Cette centrale est capable de générer un fichier XML avec les données que je souhaite récupérer en les envoyant sur un serveur FTP par exemple. C'est donc maintenant chose faite et je récupère bien le fichier suivant :

<?xml version="1.0" encoding="UTF-8"?>
<PCOWEB>
<SYSTEM>
<HOSTNAME>pCOWeb1EDB15</HOSTNAME>
<DATE>20130925184100</DATE>
<IP_ADDRESS>192.168.1.45</IP_ADDRESS>
<MAC_ADDRESS>00:0a:5c:■■:■■:■■</MAC_ADDRESS>
<UPTIME>0d1h22m</UPTIME>
<SYS_VERSION>B1.2.4</SYS_VERSION>
<APP_VERSION>A1.5.0</APP_VERSION>
<SEPARATOR_CHAR>.</SEPARATOR_CHAR>
</SYSTEM>
<PCO>
<PCONAME>Releves PAC DIMPLEX - Domotifred 25-09-2013 V 1.1</PCONAME>
<PCOID>1</PCOID>
<DIGITAL>
<VARIABLE>
<INDEX>41</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>42</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>43</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>44</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>45</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>46</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>49</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>50</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
</DIGITAL>
<INTEGER>
<VARIABLE>
<INDEX>1</INDEX>
<VALUE>1</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>2</INDEX>
<VALUE>0</VALUE>
</VARIABLE>
</INTEGER>
<ANALOG>
<VARIABLE>
<INDEX>1</INDEX>
<VALUE>20.5</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>2</INDEX>
<VALUE>20.3</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>3</INDEX>
<VALUE>47.3</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>5</INDEX>
<VALUE>39.0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>53</INDEX>
<VALUE>15.0</VALUE>
</VARIABLE>
<VARIABLE>
<INDEX>58</INDEX>
<VALUE>10.0</VALUE>
</VARIABLE>
</ANALOG>
</PCO>
</PCOWEB>

Je peux donc créer des capteurs HTTP avec la box eedomus.
J'y arrive par exemple en voulant afficher le temps depuis lequel la centrale est en route en tapant l'URL suivante :
http://192.168.1.48/infospacdimplex.xml

et en tapant le chemin XPath suivant :
/PCOWEB/SYSTEM/UPTIME

Jusque là, pas de problème.
Le problème commence quand je veux trouver la bonne syntaxe pour faire afficher la température extérieure (20,5°C) qui correspond à la ligne :
<ANALOG>
<VARIABLE>
<INDEX>1</INDEX>
<VALUE>20.5</VALUE>
</VARIABLE>

Je suis incapable de trouver la syntaxe qui va bien pour ce chemin XPath, car j'ai plusieurs "VARIABLE" identiques, malgré le fait que j'ai des index différents...
Quelqu'un aurait t'il la solution miracle ?

Merci d'avance.
Auteur:  DomotiFred [ 25 Sep 2013 18:08 ]
Sujet du message:  Re: XPATH avec fichier XML

Je me réponds :-)

La syntaxe est la suivante :
/PCOWEB/PCO/ANALOG/VARIABLE[INDEX=1]/VALUE
Auteur:  DomotiFred [ 01 Oct 2013 13:12 ]
Sujet du message:  Re: XPATH avec fichier XML

Bonjour,

J'ai pratiquement terminé, mais la, je sèche grave.
Je voudrais extraire et transformer les infos en caractères gras dans le fichier XML ci-dessous :
<PCOWEB>
<SYSTEM>
<HOSTNAME>pCOWeb1EDB15</HOSTNAME>
<DATE>20130925184100</DATE>
</SYSTEM>
</PCOWEB>
en une date, heure et minute compréhensibles avec une requête Xpath.
La requête qui m'extrait la chaîne complète est la suivante : /PCOWEB/SYSTEM/DATE
et j'obtiens comme résultat 20130925184100
mais je souhaiterais pouvoir connaître comment écrire ma requête Xpath pour afficher comme résultat : 2013 09 25 - 18 41 00 ou mieux 2013/09/25 - 18H41M00 ou encore encore mieux : 25/09/2013 - 18H41

Merci d'avance à celui qui pourra m'aiguiller :-)
Auteur:  DomotiFred [ 02 Oct 2013 17:38 ]
Sujet du message:  Re: XPATH avec fichier XML

Bonsoir,

Personne pour répondre à mon problème de syntaxe Xpath ?
Auteur:  Madoma73 [ 04 Oct 2013 22:44 ]
Sujet du message:  Re: XPATH avec fichier XML

Salut,
désolé domotifred, mais de mon côté, je ne me suis encore jamais penché sur la syntaxe XPATH.


Pierre
Auteur:  DomotiFred [ 05 Oct 2013 17:49 ]
Sujet du message:  Re: XPATH avec fichier XML

Bonsoir Pierre,

Dommage :-(
En attendant, j'ai trouvé un lien qui permet de générer le chemin Xpath en plaçant la souris sur la valeur qu'on souhaite extraire du fichier XML.
http://www.xmltoolbox.com/xpath_generator.html

C'est très sympa, malheureusement ça ne fait pas de choses complexes.
Auteur:  hugosc [ 05 Oct 2013 19:43 ]
Sujet du message:  Re: XPATH avec fichier XML

Bonjour,

Plusieurs fonctions XPATH sont disponibles, et décrites sur http://doc.eedomus.com/index.php/Capteurs_HTTP

Suggestion de syntaxe pour DomotiFred :
Code : Tout sélectionner
concat(substring(/PCOWEB/SYSTEM/DATE,7,2),'/',substring(/PCOWEB/SYSTEM/DATE,5,2),'/',substring(/PCOWEB/SYSTEM/DATE,1,4),' - ',substring(/PCOWEB/SYSTEM/DATE,9,2),'H',substring(/PCOWEB/SYSTEM/DATE,11,2))
Auteur:  DomotiFred [ 06 Oct 2013 08:54 ]
Sujet du message:  Re: XPATH avec fichier XML

Bonjour Hugosc,

C'est génial, ça marche impec :-)
J'avais bien essayé de comprendre la syntaxe décrite, entre autre, dans le lien que tu signales, mais sans exemple précis, et débutant totalement dans ce domaine, je me perdais totalement...
Encore merci. Je vais pouvoir m'essayer à d'autres formules magiques maintenant ;-)
Page 1 sur 1 Le fuseau horaire est UTC+1 heure