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 :

[JAVA] XML Node et XPATH


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Points : 29
    Points
    29
    Par défaut [JAVA] XML Node et XPATH
    Bonjour,

    But : A partir d un fichier xml et d'un xpath je cherche à extraire :
    - une valeur
    - son xpath

    Vous me direz que j'ai deja le xpath, cependant dans mon cas je veux le xpath specifique à chaque donnée et non le xpath donnée pour la recherche.

    exemple :

    données initiales :
    xml : <xml><test><bob>1.0</bob><tod>2.0</tod></test></xml>
    xpath : /xml/test/*
    Resultat :
    { /xml/test/bob , 1.0 }
    { /xml/test/tod , 2.0 }
    Code

    A l'aide de la lib javax.xml, j'arrive à extraire à partir de mon xpath, une NodeList me permetant d'obtenir le contenu de chacun des noeuds.

    Cependant je ne trouve pas de methode me permetant à partir d'un object Node d'obtenir son Xpath, quelqu'un a t il une piste ? une autre lib ?

    J'ai directement exclu la piste de faire une méthode consistant à remonter noeud par noeud jusqu'à la racine et en extraire au fur et à mesure les informations. Il doit bien exister une méthode qui fait déjà cela.

    Merci.

    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
     
    public static void evaluerDOM(InputStream is, String expression){
    		NodeList liste = evaluer(is,expression);
     
    		if(liste != null){
    			for(int i=0 ; i < liste.getLength() ; i++){
    				Node node = liste.item(i);
    				System.out.println("node  : " + node.getTextContent());
    			}
    		}
    	}
     
    public static NodeList evaluer(InputStream stream, String expression){
    		NodeList liste = null;
    		try{
    			//création de la source
    			InputSource source = new InputSource(stream);
     
    			//création du XPath 
    			XPathFactory fabrique = XPathFactory.newInstance();
    			XPath xpath = fabrique.newXPath();
     
    			//évaluation de l'expression XPath
    			XPathExpression exp = xpath.compile(expression);
    			liste = (NodeList)exp.evaluate(source,XPathConstants.NODESET);
    		}catch(XPathExpressionException xpee){
    			xpee.printStackTrace();
    		}
    		return liste;
    	}

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    tu veux dire à partie d'une balise obtenir son chemin complet?
    qu'est qu'un XPath d'une balise pour toi?

Discussions similaires

  1. [JDOM] XML Node et XPATH
    Par ecatum dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 15/01/2008, 17h09
  2. [JAXB] JAVA, XML et XSD
    Par billynirvana dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 19/05/2005, 11h39
  3. java XML
    Par cmalther dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 11/05/2005, 09h08
  4. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12
  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