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 / rechercher des valeurs


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut Xpath / rechercher des valeurs
    Bonjour à vous,

    Je souhaiterais lire, une valeur dans mon fichiers XML voici l'exemple de ma hierarchie, je souhaiterais récupérer la value="zzzzz".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <objects>
      <object id="i1015e9f4f1-4993-4a0a-ac2e-a7bbf905047d" instanceof="ID_TEMPLATE_EQUIPMENT" sessionid="4">
        <attributeinstances>
          <attributeinstance instanceof="a10e5927e72-5ae9-4072-8d6d" value="zzzzz"

    Voici mon code de départ, ma question est:comment je peux lire cette value="zzzzz"(c'est un exemple). En lisant cet attribut : a10e5927e72-5ae9-4072-8d6d, il existe plusieurs object id dans objects avec à l'intérieur attributeinstance instanceof="a10e5927e72-5ae9-4072-8d6d. Je voudrais afficher toute les valeurs de cet attribut dans tous mes objets id


    Code Java : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
     import org.w3c.dom.*; 
     
    import org.xml.sax.*;
     
    import javax.xml.*; 
     
    import javax.xml.parsers.*; 
     
    import javax.xml.transform.*; 
     
    import javax.xml.transform.dom.*; 
     
    import javax.xml.transform.sax.*; 
     
    import javax.xml.xpath.*; 
     
    import javax.xml.namespace.*; 
     
    import java.io.*;
     
     
     
    public class Parse{
     
           public static void evaluerDOM(Document document, String expression, QName retour){
     
                  try{
     
                         //création du XPath 
     
                         XPathFactory fabrique = XPathFactory.newInstance();
     
                         XPath xpath = fabrique.newXPath();
     
     
     
                         //évaluation de l'expression XPath
     
                         XPathExpression exp = xpath.compile(expression);
     
                         Object resultat = exp.evaluate(document,retour);
     
     
     
                         System.out.println(resultat);
     
                  }catch(XPathExpressionException xpee){
     
                         xpee.printStackTrace();
     
                  }
     
           }
     
           public static void evaluerSAX(File NewFile, String expression, QName retour){
     
                  try{
     
                         //création de la source
     
                         InputSource source = new InputSource(new FileInputStream(NewFile));
     
     
     
                         //création du XPath 
     
                         XPathFactory fabrique = XPathFactory.newInstance();
     
                         XPath xpath = fabrique.newXPath();
     
     
     
                         //évaluation de l'expression XPath
     
                         XPathExpression exp = xpath.compile(expression);
     
                         Object resultat = exp.evaluate(source,retour);
     
     
     
                         System.out.println(resultat);
     
                  }catch(XPathExpressionException xpee){
     
                         xpee.printStackTrace();
     
                  }catch(IOException  ioe){
     
                         ioe.printStackTrace();     
     
                  }
     
           }
     
           public static void main(String[] args){
     
                  try{
     
                         DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
     
     
     
                         DocumentBuilder constructeur = fabrique.newDocumentBuilder();
     
     
     
                         File xml = new File("C:/Test2.xml");
     
                         Document document = constructeur.parse(xml);
     
                         evaluerDOM(document, "//objectid", XPathConstants.STRING);
     
                  }catch(Exception e){
     
                         e.printStackTrace(); 
     
                  }
     
     
     
     
     
           }      
     
    }


    Merci pour votre réponse,

    Bien cordialement

  2. #2
    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
    Hum. Note bien que nous ne ferons pas ton travail à ta place.

    Dans ton exemple Java, tu cherches la requête XPath //objectid . Il n'y a rien dans ton fichier XML qui s'appelle objectid, donc forcément ça ne va rien trouver.

    L'information que tu cherches, est située dans une balise <attributeinstance>. Mais tu ne veux pas toutes ces balises-là, tu ne veux que celles qui répondent à un critère précis.
    Alors, comment fait-on ça en XPath ? Qu'as-tu déjà vu au cours de ton apprentissage ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut
    Bonjour,
    Merci pour ta réponse
    J'ai pensé plutôt à quelque chose comme ça ://attributeinstance/instance instanceof="a10e5927e72-5ae9-4072-8d6d"


    A vrai dire je débute avec Xpath, mais j'ai bien compris comment naviguer dans un fichier quelconque.

    Ce qui me gène c'est de récupérer une partie de mon attribut et non l'attribut en entier. Et aussi en récupérer plusieurs (j'ai pensé à une boucle, peut être que c'est une bonne piste? Car XPATH je vois pas), sachant qu'il est différent pour chaque object id =... . De plus je n'ai pas trouvé comment remplacer les guillemets dans mon code.

    D'ailleurs je sais même pas si c'est possible avec XPATH.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/12/2009, 13h44
  2. [XL-2003] rechercher des valeurs dans des onglets suivant liste
    Par spico45 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/11/2009, 16h44
  3. [AC-2003] Recherche des valeurs manquantes
    Par merocean dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 30/06/2009, 23h23
  4. [XPATH] Rechercher une valeur entre deux valeurs min et max
    Par icicmoi dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/10/2008, 12h12
  5. [VBA-E] rechercher des valeurs?
    Par godSP2 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/02/2007, 20h55

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