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 :

Interrogation sur l'utilisation de la source "XPathUtils" [XPATH]


Sujet :

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

  1. #1
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut Interrogation sur l'utilisation de la source "XPathUtils"
    Bonjour à tous,

    Je cherche à me familiariser avec XPath.

    J'ai trouvé une source intéressante à cet endroit : http://java.developpez.com/sources/?page=xml#XPathUtils.
    La méthode getXPath(Node node) me serait grandement utile puisqu'elle renvoie une chaîne contenant une expression XPath permettant d'accéder au noeud passé en paramètre.

    Cependant, je ne parviens pas à trouver la manière dont je peux instancier un node pour le fournir à cette méthode.
    La solution est probablement toute bête mais je n'ai pas mis le doigt dessus. Quelqu'un peut-il m'éclairer sur le sujet ?

    Merci d'avance.

  2. #2
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut Une exemple d'utilisation
    Salut,
    voici un petit test.
    fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <racine>
    	<fils1>
    		<petit-fils1>valeur de fils1/petit-fils1</petit-fils1>
    		<petit-fils2>valeur de fils1/petit-fils2</petit-fils2>
    	</fils1>
    	<fils2>valeur de fils2</fils2>
    </racine>
    la classe de test
    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
    import org.w3c.dom.*;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import java.io.FileInputStream;
     
    public class TestXPath
    {
    	public static void main(String[] args)
    	{
    		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    		DocumentBuilder builder = null;
    		Document doc = null;
    		Element root = null;
    		String xmlFile = "test.xml";
    		try{
    			builder = factory.newDocumentBuilder();
    			doc = builder.parse(new FileInputStream(xmlFile));
    			root = doc.getDocumentElement();
    			NodeList listEnfants = root.getChildNodes();
    			for (int i = 0; i < listEnfants.getLength(); i++)
    			{
    				System.out.println(XPathUtils.getXPath(listEnfants.item(i)));
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    }
    Le résultat obtenu est le suivant :
    /racine/text()[1]
    /racine/fils1[1]
    /racine/text()[2]
    /racine/fils2[1]
    /racine/text()[3]

    Mais tout de même, le résultat me parait un peu bizarre, donc je crois que quelque chose doit être changé.
    Donc, grossomodo, on crée un DocumentBuilderFactory, puis on récupère un DocumentBuilder, et on parse le fichier xml, ce qui nous donne un Document, ensuite on récupère la racine (Element), et enfin on récupère un NodeList qui contient tous les Node enfants de l'Element racine (getChildNodes()) et on boucle dessus.

    Voilà, j'espère que ça aidera, et puis pense à jeter un oeil à la faq xml_java

  3. #3
    Membre régulier Avatar de ultracoxy
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 116
    Points : 74
    Points
    74
    Par défaut
    Merci beaucoup herch.

    Ton exemple m'a permis de démarrer.

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

Discussions similaires

  1. [XL-2010] Appliquer un filte sur un TCD connecté à une source OLAP en utilisant VBA
    Par remis dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/03/2015, 19h47
  2. Question sur l'utilisation de wget
    Par berry dans le forum Réseau
    Réponses: 7
    Dernier message: 24/05/2007, 22h46
  3. [CR] Infos sur l'utilisation de dll
    Par step dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 09/08/2002, 11h35

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