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

Format d'échange (XML, JSON...) Java Discussion :

Récupérer les attributs d'un fichier XML [XPATH]


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 111
    Par défaut Récupérer les attributs d'un fichier XML
    bonjour a tous,
    j'ai ce doc xml :
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <article>
    <name id="527453">Flowchart</name>
    <conversionwarning>0</conversionwarning><body>
    <section>
    <p>
    Flowcharts were used historically in 
    	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="41961.xml">
    	electronic data processing
    	</link>to represent the conditional logic of computer programs.  With the emergence of 
    	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="27695.xml">
    	structured programming
    	</link> and 
     
    </p>
    </section>
    <section>
    There are various packages for creating flowcharts, according to different standards. The most common is 
    	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="32169.xml">
    	UML
    	</link>, for which there are abundant packages for various platforms. See 
    	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="32169.xml">
    	UML article
    	</link> for list. The creation of simple flowcharts on a computer is fairly easy with any vector-based drawing program, but Microsoft Word (versions 97 through 2003) and 
    </section>
    </body>
    </article>



    je veux récupérer : juste les attributs de section[1] exactement : les attributs de toutes les balises <link> qui se trouvent dans cette section[1]
    et les attributs en question : "41961.xml" et "27695.xml"
    mais le chemin diffère d'un doc a un autres c'est à dire dans un autres doc : le chemin peut être section[2]/paragraphe[3] par exemple.


    merci pour votre aide.

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    je veux récupérer : juste les attributs de section[1] exactement : les attributs de toutes les balises <link> qui se trouvent dans cette section[1] et les attributs en question : "41961.xml" et "27695.xml"
    mais le chemin diffère d'un doc a un autres c'est à dire dans un autres doc : le chemin peut être section[2]/paragraphe[3] par exemple.
    Comme ça le xpath pour les link:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "(//section[descendant::link])[1]//link"
    et pour xlink:href directement (vous devrez prendre soin vous-même le prefixe et la construction d'un instance de List de namespace):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "(//section[descendant::link])[1]//link/@xlink:href"

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 111
    Par défaut
    merci tsuji pour ta réponse,
    mais ça ne récupère que l'attribut "simple" !!!et les autres sont vides

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par anizlewan Voir le message
    merci tsuji pour ta réponse,
    mais ça ne récupère que l'attribut "simple" !!!et les autres sont vides
    Pas chez moi.
    Montre-nous ton programme (court) et l'exemple que tu utilises dessus (court, lui aussi.)

    (Au passage, j'ai pas trop compris ce que tu veux dire avec "mais le chemin diffère d'un doc a un autres c'est à dire dans un autres doc : le chemin peut être section[2]/paragraphe[3] par exemple." Soit tu connais le chemin à aller chercher, soit tu le connais pas.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 87
    Par défaut
    Citation Envoyé par thelvin Voir le message
    (Au passage, j'ai pas trop compris ce que tu veux dire avec "mais le chemin diffère d'un doc a un autres c'est à dire dans un autres doc : le chemin peut être section[2]/paragraphe[3] par exemple." Soit tu connais le chemin à aller chercher, soit tu le connais pas.)
    Je pense qu'il veut dire que les "link" peuvent être dans des sous éléments de "section" ou pas.

    Dans son exemple on a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <section>
        ...
        <link ...></link>
    </section>
    et:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <section>
        <p>
            ...
            <link ...></link>
        </p>
    </section>

  6. #6
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    mais le chemin diffère d'un doc a un autres c'est à dire dans un autres doc : le chemin peut être section[2]/paragraphe[3] par exemple.
    Ce que j'entends c'est qu'il veut dire section pourrait n'avoir pas du tout link comme déscendant ou si elle en aurait, link pourrait apparaître dans n'importe qu'elle p... comme par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <article>
        <section>
            <p>xyz<p>abc</p>pqr</p>
        </section>
        <section>
            <p>xyz<p>abc<p>def<link />ghi<link /></p></p>pqr</p>
        </section>
    </article>
    ou plus compliqué que ça.

    Citation Envoyé par moi-même
    et pour xlink:href directement (vous devrez prendre soin vous-même le prefixe et la construction d'un instance de List de namespace):
    Comme ça par exemple, parce qu'il est évident vous n'avez pas assez compris xpath et même xml du tout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    String sxpath="(//section[descendant::link])[1]//link/@xlink:href";
    Namespace ns=Namespace.getNamespace("xlink", "http://www.w3.org/1999/xlink");
    List<Namespace> nslist=new Vector<Namespace>();
    nslist.add(ns);
     
    XPathFactory xpf=XPathFactory.instance();
    XPathExpression<org.jdom2.Attribute> xpe=xpf.compile(sxpath, Filters.attribute(), null, nslist);
    //soit document est ce qui est le retourne de .build() instance de org.jdom2.Document
    List<org.jdom2.Attribute> attrlist=xpe.evaluate(document);
    for (int i=0; i<attrlist.size(); i++) {
        System.out.println(attrlist.get(i).getValue());
    }

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 111
    Par défaut
    au fait , le link peut être n'importe ou sans section ou dans paragraphe ....
    et moi je dois récuperer tout les link de n'importe quel chemin ,

    voila un exemple : j'ai plusieurs dox xml, et je veux récuperer les link de chaque doc xml mais pas tous les link tout dépend de ce que je veux !! par exemple : pour u doc je veux récupérer les link qui se trouvent dans un chemin
    /body[1]/section[1]/section[2]/p[1] et pour un autre doc /body[1]/section[2]/section[6/p[6]
    donc tout dépend du chemin ( cela je vais faire un méthode qui me donne le chemin voulu) mais le traitement va etre pour n'importe quel chemin.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    D'accord bon ben quoi qu'il en soit, tu calcules ton chemin comme ça t'arrange, puis pour en récupérer les liens qui s'y trouvent, tu y ajoutes

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    leCheminQueTuVeux//link/@xlink:href

    Comme déjà dit.

    Tu avais l'air de dire que ça ne marche pas, que ça récupère les attributs xlink:type="simple" et rien d'autre.
    Sisi, ça marche très bien, et ça ne touche pas aux attributs xlink:type. Si tu n'es pas d'accord, il va falloir le prouver.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 111
    Par défaut
    merci a tous, ça marche

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

Discussions similaires

  1. [DOM] Récupérer les attributs d'un fichier XML en XPATH AVEC DOM
    Par jean22 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/06/2013, 16h02
  2. Récupérer les dates dans un fichier XML
    Par Norore dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2011, 15h40
  3. affiché les attributs d'un fichier xml dans un treeview
    Par knuj0 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 23/09/2010, 08h05
  4. [DOM] Récupérer les attributs d'un fichier XML en PHP
    Par ePsymon dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/02/2008, 11h51
  5. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39

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