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 :

cherche nœud plus haut après un attribut [XPATH 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 673
    Par défaut cherche nœud plus haut après un attribut
    Bonjour,

    je cherche, avec xmlstarlet, à récupérer les données après un nœud dont l'attribut correspond à une expression, mais plus haut dans la hiérarchie.

    j'ai du mal à expliquer, alors je vous montre

    schématiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /root/
    /root/tag1/
    /root/tag1/tag2/
    /root/tag1/tag2/tag3[@attribute="bla bla"]
    /root/tag1/tag2/un/autre/ici
    /root/tag1/tag2/un/autre/ici
    /root/tag1/tag2/un/autre/ici
    /root/tag1/tag2/tag3[@attribute="autre chose"]
    /root/tag1/tag2/un/autre/pasIci
    /root/tag1/tag2/un/autre/pasIci
    /root/tag1/tag2/un/autre/pasIci
    je voudrais récupérer les données après bla bla, jusqu'à autre chose exclu.

    le fichier html est disponible ici, et je cherche à récupérer la liste des serveurs français (html/body/div/div/div/h5/span[@class='fam-flag fam-flag-fr' and @title='France'])
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Hello,

    tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /root/tag1/tag2/un[preceding::tag3[1][@attribute="bla bla"]]/autre
    "Prendre tous les /root/tag1/tag2/un, ne garder que ceux dont le tag3 précédent le plus proche, a l'attribute qui vaut bla bla. Sur ceux gardés, prendre leurs enfants autre".
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 673
    Par défaut
    merci.

    cela affiche bien les données à partir de bla bla, mais ça n'arrête pas à autre chose; cela affiche aussi tous les pasIci
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Par défaut
    pour moi la réponse donnée par Thelvin, sur la base de ton exemple, donne bien le résultat attendu.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 673
    Par défaut
    tu as testé sur le fichier html ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Par défaut
    Non j'ai testé sur l'exemple que tu as donné :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <tag1>
    	<tag2>
    		<tag3 attribute="bla bla"/>
    	</tag2>
    	<tag2>
    		<un>
    			<autre>
    				text
    			</autre>
    		</un>	
    		<un>
    			<autre>
    				text2
    			</autre>
    		</un>	
    </tag2>	
    	<tag2>
    		<tag3 attribute="autre chose"/>
    	</tag2>
    	<tag2>
    		<un>
    			<autre>
    				pasICI
    			</autre>
    		</un>
    	</tag2>	
    </tag1>
    </root>
    /root/tag1/tag2/un[preceding::tag3[1][@attribute="bla bla"]]/autre

    --> text
    --> text2


    Citation Envoyé par N_BaH Voir le message
    tu as testé sur le fichier html ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/06/2008, 21h07
  2. [Etudes] Je cherche ma voie pour apres
    Par r00tz dans le forum Etudes
    Réponses: 12
    Dernier message: 28/03/2007, 23h23
  3. Réponses: 6
    Dernier message: 19/11/2006, 00h41
  4. Menu en position:fixed plus haut que la fenêtre
    Par Maximil ian dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 15/12/2004, 23h14
  5. Requete : Rechercher l'id le plus haut (max)
    Par djsbens dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/07/2004, 13h35

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