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 :

Accès aux sous éléments [DOM]


Sujet :

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

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Points : 59
    Points
    59
    Par défaut Accès aux sous éléments
    Bonjour à tous,

    J'ai un doc XML à exploiter à partir d'un stream que je charge à partir de ClassLoder. J'ai le tag racine mais je n'ai pas les sous tags c-a-d les éléments fils de mon document. J'ai debogger mais je ne comprend pas le pourquoi.
    Merci d'avance pour votre intervention.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Pas très clair tout ça. Fais voir le code.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Voici,une autre explication. Je parse un doc xml, j'ai la racine mais pas les sous éléments. Je veux savoir pourquoi ils ne sont pas chargés.
    Merci.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Nous ne savons pas.

    Fais - voir - le - code. Quatre mots. C'est simple.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Voici le code. J'ai effectivement la racine mais pas les sous éléments.

    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
    public Element getConfig(final String field, final String lang) {
    		// get the root elememt
    		Element docEle = ivGevalConfig.getDocumentElement();
    		Element Config = null;
    		// get a nodelist of <ELEMENT> elements
    		NodeList nl = docEle.getElementsByTagName(ELEMENT);
    		if (nl != null && nl.getLength() > 0) {
    			int nlLen = nl.getLength();
    			for (int i = 0; i < nlLen; i++) {
    				Element prop = (Element) nl.item(i);
    				if (field.equals(prop.getAttribute(FIELD)) && lang.equals(prop.getAttribute(LANG))) {
    					Config = prop;
    					break;
    				}
    			}
    		}

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Voici le code qui permet de charger le fichier 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
    private ElementParam() {
    		super();
    		InputStream iStream = null;
    		// get the factory
    		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    		try {
    			iStream = getClass().getClassLoader().getResourceAsStream(configFilePath);
    			// Using factory get an instance of document builder
    			DocumentBuilder db = dbf.newDocumentBuilder();
    			// parse using builder to get DOM representation of the XML file
    			ivGevalConfig = db.parse(iStream);
    		} catch (Throwable t) {
    			log.error("Erreur while loading" + configFilePath, t);
    		} finally {
    			if (iStream != null) {
    				try {
    					iStream.close();
    				} catch (IOException e) {
    					log.error("Erreur while closing" + configFilePath, e);
    				}
    			}
    		}
    	}

  7. #7
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Si on y ajoute ceci :

    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
    private static final String configFilePath = "alamako/config.xml";
    private static final String ELEMENT = "config";
    private static final String FIELD = "name";
    private static final String LANG = "lang";
     
    Document ivGevalConfig;
     
    private static class Log {
      void error(String s, Throwable cause) {
        System.err.println(s);
        cause.printStackTrace();
      }
    }
     
    Log log = new Log();
     
    public static void main(String[] args) {
      ElementParam ep = new ElementParam();
      Element element = ep.getConfig("greeting", "fr");
      System.out.println(element.getTextContent());
    }
    et qu'on prévoit ce XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <root>
      <config name="greeting" lang="fr">Bonjour</config>
    </root>
    On constate qu'on accède sans problème à l'élément <config>.

    Il faut nous montrer un exemple dans lequel le problème ton problème se voit.
    Là il y a plein de maladresses de codage, mais à part ça ça marche.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 74
    Points : 59
    Points
    59
    Par défaut
    Merci thelvin, l'erreur se trouve ailleurs

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

Discussions similaires

  1. [D7Pro] Assembler et acces aux sous objets
    Par megs dans le forum Langage
    Réponses: 8
    Dernier message: 14/03/2012, 15h30
  2. Bloquer l'accés aux sous-répertoires
    Par kanaziwok dans le forum Langage
    Réponses: 33
    Dernier message: 18/03/2010, 18h23
  3. Réponses: 1
    Dernier message: 23/08/2009, 16h56
  4. Logs des Accès aux Sous-Repertoires
    Par cirano dans le forum Apache
    Réponses: 2
    Dernier message: 04/02/2008, 16h27
  5. ArrayList : Acces aux sous-elements
    Par Laeticia dans le forum C#
    Réponses: 5
    Dernier message: 26/04/2007, 10h51

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