Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
« Xml Tester des XPath » : différence entre les versions
Aller à la navigation
Aller à la recherche
création+catégories |
Aucun résumé des modifications |
||
| (3 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 13 : | Ligne 13 : | ||
=== XMLStarlet === | === XMLStarlet === | ||
On peut également utiliser [http://xmlstar.sourceforge.net/ XMLStarlet], qui est open source, gratuit. Et disponible sur Windows et Linux. | On peut également utiliser [http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html XMLStarlet], qui est open source, gratuit. Et disponible sur Windows et Linux. | ||
<syntaxhighlight lang="bash">xmlstarlet sel -t -v "count(/xml/table/rec/numField)" table.xml</syntaxhighlight> | <syntaxhighlight lang="bash">xmlstarlet sel -t -v "count(/xml/table/rec/numField)" table.xml</syntaxhighlight> | ||
=== Exemple avancé === | |||
<syntaxhighlight lang="bash"> | |||
xmlstarlet sel -N xhtml="http://www.w3.org/1999/xhtml" -t -c "/xhtml:html/xhtml:head/xhtml:link" /tmp/bmo/bmoxml-basket.xml | |||
</syntaxhighlight> | |||
* {{cmd|sel}} : sélection de noeud dans le document XML ; | |||
* {{cmd|-N xhtml="http://www.w3.org/1999/xhtml"}} : définition d'un espace de nom<ref>[http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html#d0e673 Namespaces and default namespace]</ref> ; | |||
* {{cmd|-t -c "/xhtml:html/xhtml:head/xhtml:link"}} : le template XPath que l'on applique pour obtenir nos résultats<ref>[http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html#d0e270 Querying XML documents]</ref>. | |||
** l'option {{cmd|-c}} ou {{cmd|--copy-of}} équivaut à un {{tag|xsl:copy-of}} ; | |||
** l'option {{cmd|-v}} ou {{cmd|--value-of}} équivaut à un {{tag|xsl:value-of}}. | |||
=== Valeur de '''tous''' les nœuds === | |||
<syntaxhighlight lang="bash"> | |||
xmlstarlet sel -N csv="http://apache.org/cocoon/csv/1.0" \ | |||
-t -m "//csv:record[csv:field[@column = 'type' and text()='almanach']]" -v "csv:field[@column='type']" -n \ | |||
./csv-almanachs.xml | |||
</syntaxhighlight> | |||
Explication : | |||
<syntaxhighlight lang="bash"> | |||
xmlstarlet sel \ | |||
-N csv="http://apache.org/cocoon/csv/1.0" \ | |||
-t # template à appliquer \ | |||
-m "//csv:record[csv:field[@column = 'type' and text()='almanach']]" # on match ce genre de nœud \ | |||
-v "csv:field[@column='type']" # une fois matcher, on affiche cette valeur \ | |||
-n # saut de ligne entre chaque match \ | |||
./csv-almanachs.xml # document d'entrée | |||
</syntaxhighlight> | |||
== Références == | |||
* [http://xmlstar.sourceforge.net/docs.php Quick help] XMLStarlet Command Line XML Toolkit | |||
* [http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html Complete document as a single HTML page] | |||
* [http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html#d0e270 Querying XML documents] | |||
* [http://xmlstar.sourceforge.net/doc/UG/xmlstarlet-ug.html#d0e673 Namespaces and default namespace] | |||
<references/> | |||
[[category:XML]] | [[category:XML]] | ||
Dernière version du 24 avril 2013 à 10:45
GUI
[modifier | modifier le wikicode]Eclipse
[modifier | modifier le wikicode]On installera les plugins suivants qui sont disponible dans Eclipse Web Tools Platform :
- XSL Tools SDK
- PscyhoPath XPath 2.0 Processor Feature
- XSL Tools Developer Resources
Remarques : On fera attention au processeur que l'on utilise : XPath 1.0 ou XPath 2.0.
Terminal
[modifier | modifier le wikicode]Utilitaire xpath
[modifier | modifier le wikicode]Cela correspond au paquet linux : libxml-xpath-perl disponible sur [[1]]
xpath -e '//archref/@href'
Pour n'avoir que les noeud, on rajoutera une redirection des erreurs à la fin de la commande : 2&>1
XMLStarlet
[modifier | modifier le wikicode]On peut également utiliser XMLStarlet, qui est open source, gratuit. Et disponible sur Windows et Linux.
xmlstarlet sel -t -v "count(/xml/table/rec/numField)" table.xml
Exemple avancé
[modifier | modifier le wikicode]xmlstarlet sel -N xhtml="http://www.w3.org/1999/xhtml" -t -c "/xhtml:html/xhtml:head/xhtml:link" /tmp/bmo/bmoxml-basket.xml
sel: sélection de noeud dans le document XML ;-N xhtml="http://www.w3.org/1999/xhtml": définition d'un espace de nom<ref>Namespaces and default namespace</ref> ;-t -c "/xhtml:html/xhtml:head/xhtml:link": le template XPath que l'on applique pour obtenir nos résultats<ref>Querying XML documents</ref>.- l'option
-cou--copy-oféquivaut à un <xsl:copy-of> ; - l'option
-vou--value-oféquivaut à un <xsl:value-of>.
- l'option
Valeur de tous les nœuds
[modifier | modifier le wikicode]xmlstarlet sel -N csv="http://apache.org/cocoon/csv/1.0" \
-t -m "//csv:record[csv:field[@column = 'type' and text()='almanach']]" -v "csv:field[@column='type']" -n \
./csv-almanachs.xml
Explication :
xmlstarlet sel \
-N csv="http://apache.org/cocoon/csv/1.0" \
-t # template à appliquer \
-m "//csv:record[csv:field[@column = 'type' and text()='almanach']]" # on match ce genre de nœud \
-v "csv:field[@column='type']" # une fois matcher, on affiche cette valeur \
-n # saut de ligne entre chaque match \
./csv-almanachs.xml # document d'entrée
Références
[modifier | modifier le wikicode]- Quick help XMLStarlet Command Line XML Toolkit
- Complete document as a single HTML page
- Querying XML documents
- Namespaces and default namespace
<references/>