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 confirmé
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Pas très clair tout ça. Fais voir le code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Nous ne savons pas.

    Fais - voir - le - code. Quatre mots. C'est simple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    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
    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 confirmé
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    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
    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