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 :

Erreur de lecture [DOM]


Sujet :

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

  1. #1
    Membre confirmé Avatar de romaik
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut Erreur de lecture
    Bonjour
    j'ai une erreur de lecture d'un fichier xml et je vois pas comme resoudre ca :s.
    Avant toute chose, je suis en JRE 1.4.2 donc je ne peux pas utiliser getTextContent.

    Je dois faire un test de volumetrie en utilisant iBatis. J'ai enregistré des fichiers xml (simples : 150 caracteres environ) sur ma BDD; je les recuperes puis les lit.

    voici le code de lecture (la ou il y a le bug)
    Code Java : 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
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder constructeur;
    Document d;
    Element r;
    try {
    	constructeur = factory.newDocumentBuilder();
    	for(int i = 1; i <= 2 ; i++){
    	    	d = constructeur.parse(new InputSource(new StringReader(readiBatis(i))));
    	    	r = d.getDocumentElement();
    	    	NodeList nl = r.getChildNodes();
    	    	for(int j = 0; j< nl.getLength();j++){
    	    		System.out.println("j="+j+" node:"+nl.item(j).getNodeName()+" type:"+nl.item(j).getNodeType()+" value:"+nl.item(j).toString());
    	    	}
    	}
    } catch (ParserConfigurationException e) {
    	e.printStackTrace();
    } catch (SAXException e) {
    	e.printStackTrace();
    } catch (IOException e) {
    	e.printStackTrace();
    }
    Un exemple de fichier XML :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8"?>
    <racine>
    <tag1>0</tag1>
    <tag2>44</tag2>
    <tag3>58</tag3>
    <tag4>64</tag4>
    <tag5>85</tag5>
    </racine>

    et voila ma trace
    Code Java : 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
    j=0 node:#text type:3 value:
     
    j=1 node:tag1 type:1 value:<tag1>0</tag1>
    j=2 node:#text type:3 value:
     
    j=3 node:tag2 type:1 value:<tag2>44</tag2>
    j=4 node:#text type:3 value:
     
    j=5 node:tag3 type:1 value:<tag3>58</tag3>
    j=6 node:#text type:3 value:
     
    j=7 node:tag4 type:1 value:<tag4>64</tag4>
    j=8 node:#text type:3 value:
     
    j=9 node:tag5 type:1 value:<tag5>85</tag5>
    j=10 node:#text type:3 value:

    En fait, a chaque fois que je dois recuperer une valeur (un nombre ici) j'affiche un \n a la place :s

    Des idées ?

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    La librairie Jdom est compatible java 1.4 et te permet d'utiliser une méthode équivalente à getTextContent()
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre confirmé Avatar de romaik
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Je travail sur un client lourd, qui tourne sur des tablet PC.
    C'est pas que je peux par rajouter une librairie, c'est juste que dans la mesure du possible, je prefere eviter.

    Je precise que "readiBatis(i)" c'est la chaine de caracteres de mon fichier XML (chargé depuis ibatis)

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    J'avoue que je n'ai pas vraiment compris ce qui te posait pb ... qu'est-ce qui ne te convient pas ???

  5. #5
    Membre éprouvé
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Par défaut
    c'est tout à fait normal ton résultat,

    Ton algorithme liste et affiche les fils (directs uniquement) de ton élément racine.
    il y a donc :
    un élément tag1,
    un retour à la ligne (entre l'élement tag1 et l'élément tag2),
    un élément tag2,
    ...

    si tu veux récupérer le contenu des éléments tag1, tag2, ..., il faut que tu teste si ton noeud est un élément (et non du texte) et que tu affiche son (ou ses) fils.

  6. #6
    Membre confirmé Avatar de romaik
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    merci beaucoup

    J'ai reussi.
    Ca fait deux jours que je m'arrache les cheveux dessus.
    Saleté de JRE 1.4.2

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

Discussions similaires

  1. erreur de lecture de tableau incompréhensible
    Par Anouschka dans le forum C++
    Réponses: 2
    Dernier message: 27/01/2006, 13h40
  2. [Hibernate] Erreur de lecture
    Par magnus2005 dans le forum Hibernate
    Réponses: 2
    Dernier message: 24/01/2006, 16h47
  3. Réponses: 18
    Dernier message: 19/10/2005, 14h07
  4. Erreur de lecture sur BD Access avec delphi
    Par e120650 dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/06/2005, 10h17
  5. Erreur de lecture du flux sous SQLServer
    Par smazaudi dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/03/2005, 14h30

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