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 :

[DOM4J] Comment générer un xPath à partir d'un élément d'un document XML


Sujet :

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

  1. #1
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut [DOM4J] Comment générer un xPath à partir d'un élément d'un document XML
    Bonjour à tous,

    J'ai un Document XML dans lequel il faudrait que je génère le xPath d'un élément donné.
    Ce xPath doit être par exemple /*[1]/*[3]/*[4]/*[2]
    Y'a-t-il une fonction magique qui ferrait ça pour moi ?
    Faut-il que je crée moi même un fonction pour le faire ?
    Avez vous des idées par où commencer si je dois créer ce type de fonction.

    Merci pour votre. Demandez moi si vous avez besoin de plus de précision.

  2. #2
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Re bonjour,
    J'ai réussi à trouver un fonction faisant ce que je veux mais (parce que y'a toujours un mais sinon c'est pas marrant), j'ai l'erreur suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    the method getPreviousSibling() is undefined for the type Node
    Je vous mets le code utilisé.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    private String getXPath(Node n) {
     
    		// node's full XPath
    		StringBuffer nodePath = new StringBuffer();
     
    		int pos = 1; // default position of an element
     
    		Node checker = n; // get a copy current node reference
     
    		// browse previous siblings of current node
    		while ((checker = checker.getPreviousSibling()) != null) {
    			// if it is an Element, increment position of current node
    			if (checker.getNodeType() == Node.ELEMENT_NODE) {
    				pos++;
    			}
    		}
     
    		// no more previous siblings:
    		// insert current node path in the full node path
    		nodePath.insert(0, "/*[" + pos + "]");
     
    		// browse current node parents
    		while ((n = n.getParent()) != null) {
     
    			// if it is an Element, compute its position and
    			// insert node path in the full node path
    			if (n.getNodeType() == Node.ELEMENT_NODE) {
     
    				pos = 1; // reset current node position
    				checker = n; // get a copy current node reference
     
    				// browse previous siblings of current node
    				while ((checker = checker.getPreviousSibling()) != null) {
    					// if it is an Element, increment position of current node
    					if (checker.getNodeType() == Node.ELEMENT_NODE) {
    						pos++;
    					}
    				}
    				// no more previous siblings:
    				// insert current node path in the full node path
    				nodePath.insert(0, "/*[" + pos + "]");
    			}
    		}
    		return nodePath.toString();
    	}
    Merci de votre aide

  3. #3
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Bon en fait j'ai compris pourquoi ça merdé. C'est parce que j'utilise dans tout mon projet la lib dom4j qui ne contient pas getPreviousSibling() apparemment.
    Par contre comment faire sans dans le cadre de mon code?
    Je ne peux pas changer de lib car tout le projet utilise dom4j ce serait beaucoup trop long.

    Merci de votre aide.

Discussions similaires

  1. comment générer des VPS à partir de mon serveur?
    Par ferdaws dans le forum Hébergement
    Réponses: 0
    Dernier message: 28/03/2010, 22h16
  2. comment générer un rapport à partir de Netbeans
    Par twister9458 dans le forum Jasper
    Réponses: 3
    Dernier message: 11/08/2009, 12h39
  3. Comment générer une image à partir d'un formule Latex
    Par snopims dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 11/06/2008, 14h01
  4. Comment générer une XSD à partir d'une DTD?
    Par farenheiit dans le forum Valider
    Réponses: 1
    Dernier message: 20/06/2007, 09h42
  5. comment générer du wml à partir de xml?
    Par mob07 dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 30/04/2007, 21h44

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