xmlstarlet est un outil libre qui permet de rechercher des informations dans un fchier xml. Voici un example d’utilisation.

Imaginons un fichier xml contenant plusieurs enregistrements du type :

...
  <page>
    <title>Titre Page</title>
    <id>3919</id>
    <revision>
      <id>62498</id>
      <timestamp>2008-06-01T11:18:23Z</timestamp>
      <contributor>
        <username>Utilisateur1</username>
        <id>783</id>
      </contributor>
      <minor />
      <comment>Révocation des modifications</comment>
      <text>Voici le texte de la page</text>
    </revision>
  <page>
...

avec xmlstarlet nous allons pouvoir sélectionner le contenu (balise <text>) d’une page identifié par son titre (<title>) :

user@machine:~$ xmlstarlet sel -t -m "//page[title='Titre Page']/revision" -v text -n fichier.xml
Voici le texte de la page

Voici la signification des arguments utilisé : sel : passe xmlstarlet en mode selection -t : indique qu’on passe en mode template -m “//page[title=’Titre Page’]/revision” : recherche (match) une balise page qui contient un balise title contenant la chaine ‘Titre Page’ puis se positionne sur la balise fille revision -v text : imprime le contenu de la balise fille text -n : après chaque enregistrement correspondant saute une ligne