IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XPATH]pb de mon xpath ou d'utilisation de xmlstarlet ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut [XPATH]pb de mon xpath ou d'utilisation de xmlstarlet ?
    Bonjour,

    je suis débutant avec le concept de xpath (depuis hier). Je suis en train d'essayer de réaliser un script de download automatique de podcast. Je souhaite utiliser xmlstarlet en ligne de commande pour récupérer le <title> d'un podcast dont j'ai l'url le fichier xml est le suivant :

    <rss>
    <channel>
    <item>
    <title>toto</title>
    <enclosure url="uneadresseurl1" />
    </item>
    <item>
    <title>titi</title>
    <enclosure url="uneadresseurl2" />
    </item>
    <item>
    <title>tutu</title>
    <enclosure url="uneadresseurl3" />
    </item>
    </channel
    </rss>

    version non simplifiée du fichier xml

    je suis arrivé à la conclusion qu'il fallait que j'écrive ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fetch -q -o - http://rss.allocine.fr/bandesannonces/ipod | xml sel -T -t -v title -m /rss/channel/item/enclosure[@url=uneadresseurl2]/parent
    mais cela me retourne xml: No match

    je ne comprend pas pourquoi.

    j'ai essayé quelque chose de plus basique encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fetch -q -o - http://rss.allocine.fr/bandesannonces/ipod | xml sel -T -t -v title -m /rss/channel/item
    cela me retourne une chaine vide

    j'ai pourtant l'impression d'avoir compris le nécéssaire pour réussir à faire quelque chose d'aussi simple. Mais apparemment, non :-(

    pourriez-vous me mettre sur le bon chemin ?

  2. #2
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    j'ai essayé aussi la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fetch -q -o - http://rss.allocine.fr/bandesannonces/ipod | xml sel -T -t -v /rss/channel/item[enclosure[@url='http://rss.allocine.fr/~r/bandesannonces/ipod/~5/B3G2AWykS9c/18942194_te1.m4v']]/title
    mais j'obtiens encore la réponse xml: No match.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    Modifie la fin de ta commande XPath "/title" en "/preceding-sibling::title", pour voir ce que ça donne.

  4. #4
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    merci de ta réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > fetch -q -o - http://rss.allocine.fr/bandesannonces/ipod | xml sel -T -t -v /rss/channel/item[enclosure[@url='http://rss.allocine.fr/~r/bandesannonces/ipod/~5/B3G2AWykS9c/18942194_te1.m4v']]/preceding-sibling::title
    xml: No match.
    pas mieux

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    avec ta dernière requête, c'est cette fois '/title' qu'il faut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /rss/channel/item[enclosure[@url='http://rss.allocine.fr/~r/bandesannonces/ipod/~5/B3G2AWykS9c/18942194_te1.m4v']]/title
    et sur le fichier complet elle ramène bien '<title>La Rafle</title>'
    Le XPath est bon, le problème vient d'ailleurs.

  6. #6
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 86
    Points : 50
    Points
    50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fetch -q -o - http://rss.allocine.fr/bandesannonces/ipod | xml sel -T -t -v "/rss/channel/item[enclosure[@url='http://rss.allocine.fr/~r/bandesannonces/ipod/~5/B3G2AWykS9c/18942194_te1.m4v']]/title"
    La Rafle>
    Excellent ...

    à priori c'était une histoire de guillemet autour du xpath. Cependant je suis très étonné car depuis le début que je fais des tests j'essaye avec des guillemets et sans guillemets à chaque fois .... il faut croire que j'avais du oublier cette-fois ci :-/


    merci pour tout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec mon xPath
    Par kaygee dans le forum ASP.NET
    Réponses: 9
    Dernier message: 06/10/2009, 15h14
  2. [XPATH] génération d'un xpath pour faire des recherches dans un xml
    Par Spaceman Spiff dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/06/2007, 18h18
  3. Réponses: 13
    Dernier message: 01/02/2007, 20h10
  4. mon prog c++ n'utilise pas le swap
    Par keket123 dans le forum C++
    Réponses: 11
    Dernier message: 18/08/2006, 08h05
  5. [XSLT+XPath] Échapper les accolades XPath
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 30/09/2005, 23h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo