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 :

parsing xml - Document null [DOM]


Sujet :

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

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut parsing xml - Document null
    Bonjour à tous !!

    Voila, je tente de parser un fichier xml.

    Je l'ouvre de cette facon (que j'ai vue dans la FAQ ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder constructeur = factory.newDocumentBuilder();
    File xml = new File("src/main/resource_bundle/ma_resources_" + locale + ".xml");
    Document document = constructeur.parse(xml);
     
    } catch (ParserConfigurationException e) {
    			e.printStackTrace();
    		} catch (SAXException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    Mon problème est le suivant : l'objet document semble être null, alors que mon fichier existe bien (pour preuve je lui ai demandé d'afficher le chemin absolu : no pbo), et qu'aucune exception n'est levée.


    Quoi qui s'passe ?? Merci d'avance

  2. #2
    Membre confirmé Avatar de med_ellouze
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut
    Essaye de commencer ton chemin à partir de c:/....
    Essaye d'afficher le nom du fichier et sa taille par exemple, comme ça tu pourrait avoir plus d'infos sur ton fichier.

    Voilà un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File xml = new File("src/main/resource_bundle/ma_resources_" + locale + ".xml");
    long size = xml.length();
    String nom_fichier = xml.getName();
    J'espère que ça va t'aider.

  3. #3
    Membre confirmé Avatar de med_ellouze
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 89
    Par défaut
    ça serait pas mal si tu nous envois toute la méthode (procédure).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Merci de ton aide...

    En fait, mon problème ne vient pas de la... Plus précisément, il m'indique null, mais arrive quand même à chopper des données.

    c'est sans doute ma méthode de récupération de données qui n'est pas la bonne :

    j'ai dans mon fichier xml les éléments suivants que je souhaite parser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <db-styles id="1">Blues Rock</db-styles>
    <db-styles id="2">Standards Blues</db-styles>
    <db-styles id="3">Gospel</db-styles>
    etc...

    Voici ensuite le bout de code ou ca merde :

    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
     
     
    Map<String, List<String>> m = new HashMap<String, List<String>>();
     
    for (Document resources : bundles) {					
    	List<String> values = new ArrayList<String>();
     
    	for (int i = 0; i < primaryKeysArr.length; i++) {
    		NodeList nodelist =resources.getElementsByTagName(resourceKey);
    		for (int nodeid = 0; nodeid < nodelist.getLength(); nodeid++) {
    			values.add(nodelist.item(nodeid).getNodeValue());
    		}
    	}
     
    		m.put(resources.toString(), values);
    }

    Il s'avère que ma nodelist.getLength() = 0. Il ne récupère donc pas mes valeurs.

    Vaut-il mieux que je parse avec un getElementById ?? ou est-ce qu'il est censé pouvoir récupérer tous mes éléments avec le nom du tag ?

    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    j'ai testé avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Node node = resources.getElementById(new String(primaryKeysArr[i]));
    ma node est null...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Au temps pour moi, j'avais une pauvre erreur de syntaxe, à un caractère près...

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

Discussions similaires

  1. Erreur "java.lang.AssertionError: Unexpected exception parsing XML document..."
    Par ZeRo0Cold dans le forum Persistance des données
    Réponses: 6
    Dernier message: 25/05/2015, 17h48
  2. Réponses: 4
    Dernier message: 12/12/2012, 12h16
  3. Réponses: 2
    Dernier message: 25/07/2012, 16h38
  4. [DOM] Parser String to XML : [#document: null]
    Par lextaz33 dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 02/04/2009, 17h53

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