Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/10/2016, à 11:30

Arbiel

Exploitation de fichiers xml avec XPath 3.0

Bonjour à tous

J'utilise xmlstarlet, prétendument compatible avec XPath 3.0, pour exploiter les données mémorisées dans un fichier xml. Sauf erreur de ma part, hypothèse toujours plausible, et comme le montre l'exemple ci-dessous, il ignore l'existence de fonctions telles que string-join ou lower-case, pourtant définies dans la norme.

remi@remi-Vostro-3550:~$ e xml_os
xml_os="<Système rang="1"> <Nom>Windows 98SE</Nom> <Vbox>/home/ciel/.ciel/virtualbox/Windows 98SE.vbox</Vbox> <HardDisk> <uuid>{510183ef-59b8-4c3a-952a-3d6b6a457b57}</uuid> <location>/home/ciel/.ciel/virtualbox/Windows 98SE (vdi)</location><type>MultiAttach</type><format>VDI</format> </HardDisk> </Système>"
remi@remi-Vostro-3550:~$ echo "${xml_os}" | xmlstarlet sel -t -m "//HardDisk/format" -v "./text()" -n;
VDI
remi@remi-Vostro-3550:~$ echo "${xml_os}" | xmlstarlet sel -t -m "//HardDisk/format" -v "concat(\"résultat=\",./text())" -n;
résultat=VDI
remi@remi-Vostro-3550:~$ echo "${xml_os}" | xmlstarlet sel -t -m "//HardDisk/format" -v "lower-case(./text())" -n;
xmlXPathCompOpEval: function lower-case not found
Unregistered function
runtime error: element with-param
Failed to evaluate the expression of variable 'select'.
remi@remi-Vostro-3550:~$ 

Quelqu'un a-t-il connaissance d'un autre logiciel, réellement compatible avec XPath 3.0, et suffisamment bien documenté pour être facilement utilisable ?

Merci d'avance pour votre aide.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#2 Le 08/11/2016, à 12:01

grim7reaper

Re : Exploitation de fichiers xml avec XPath 3.0

Salut,

Tu pourrais peut-être essayer saxon-lint.
D’après son README :

README a écrit :

This program is aimed to query XML/(X)HTML files via command line such as XMLStarlet or xmllint, but with the ability to use XPath 3.0/XQuery 3.0/XSLT 2.0 (Other command-line tools are stuck with libxml2 and XPath 1.0/XSLT 1.0).

En plus, je crois que l’auteur (sputnick) fréquente ce forum.

Édit : il avait même fait une annonce sur le forum.

Dernière modification par grim7reaper (Le 09/11/2016, à 09:03)

Hors ligne

#3 Le 11/11/2016, à 00:20

Arbiel

Re : Exploitation de fichiers xml avec XPath 3.0

Bonsoir

Merci pour cette information. Je vais regarder.

J'ai à peu près compris comment utiliser xmlstarlet pour des interrogations simples de mon fichier, ce qui dans un premier temps me suffit, mais vraisemblablement pas à terme, avec le développement que je compte faire.

Les commentaires que j'ai trouvés sur le site sont peu explicites, et visent plutôt des experts en xslt, langage que je ne connais pas, enfin, que je ne connais pas encore. J'ai bien compris qu'il faut que je m'y mette pour pouvoir introduire de nouveaux nœuds dans mon fichier.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne