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 :

Synthaxe de Xpath [XPATH 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Par défaut Synthaxe de Xpath
    Hello,

    Je viens de découvrir XPATH dans mon projet WPF, et c'est bien pratique. Par contre, je galère un peu à trouver la bonne syntaxe. Je cherche à réaliser une expression qui peut se décrire comme il suit:

    Parmi les enfants de "manifest", je veux la valeur de l'attribut "href" pour tous les noeuds "item" dont l'attribut "media-type" est "application/xhtml+xml"

    merci pour votre aide!

    EDIT: j'ai mis dans le titre de sujet XPATH 1.0 mais je n'ai aucune idée de la version que j'utilise.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    il faut utiliser un prédicat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alphonse/bernard[cyril = 'didier']/ethan
    "Parmis les enfants de <alphonse>, je veux la valeur <ethan> de tous les <bernard> dont <cyril> vaut 'didier'."

    Ou en déroulant :

    "Prends les <alphonse>. Dedans, prends les <bernard>, mais seulement ceux dont <cyril> vaut 'didier'. Dedans, prends les <ethan>"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Par défaut
    Merci pour ta réponse Thelvin. Si j'ai bien suivi, dans mon cas, ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package/manifest/item[media-type='application/xhtml+xml']/href
    Ni dans mon code, ni dans xmlspy ça ne renvoie de résultats.

    Pour info, voilà un aperçu du fichier avec les lignes que je veux atteindre en gras. En gros je veux récupérer dans ce cas "MyFile_split_001.htm"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?xml version="1.0"  encoding="UTF-8"?>
    <package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="uuid_id">
      <metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:opf="http://www.idpf.org/2007/opf" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:calibre="http://calibre.kovidgoyal.net/2009/metadata" xmlns:dc="http://purl.org/dc/elements/1.1/">
    blablabla
    
    </metadata>
    <manifest>
        <item href="cover.jpeg" id="cover" media-type="image/jpeg"/>
        <item href="MyFile_split_000.htm" id="html2" media-type="application/xhtml+xml"/>
        <item href="MyFile_split_001.htm" id="html1" media-type="application/xhtml+xml"/>
        <item href="image001.jpg" id="added" media-type="image/jpeg"/>
        <item href="image002.jpg" id="added1" media-type="image/jpeg"/>
        <item href="page_styles.css" id="page_css" media-type="text/css"/>
        <item href="stylesheet.css" id="css" media-type="text/css"/>
        <item href="titlepage.xhtml" id="titlepage" media-type="application/xhtml+xml"/>
        <item href="toc.ncx" media-type="application/x-dtbncx+xml" id="ncx"/>
      </manifest>
    
    Autre noeuds
    </package>

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Par défaut
    J'ai trouvé. Il manquait les arobases. Voilà ce que ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package/manifest/item [@media-type = "application/xhtml+xml"]/@href

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 104
    Par défaut
    Je me suis réjoui trop vite, ça marche dans xmlspy mais pas dans mon code (vb .net, appli WPF)

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Ta dernière syntaxe est pourtant correcte.

    Peut-être que dans WPF tu utilises une API qui ne récupère qu'une seule valeur, au lieu d'un ensemble de valeurs ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2010, 14h36
  2. [XPath] Position d'un élément
    Par ovh dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 07/04/2003, 15h26
  3. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 19/03/2003, 13h48
  4. XPath: intersection de chemins
    Par aldo047 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/03/2003, 10h30
  5. Cours en Français sur XML-XSL et XPath
    Par Community Management dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 25/04/2002, 15h46

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