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 :

Parser un fichier XML


Sujet :

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

  1. #1
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut Parser un fichier XML
    Bonsoir,
    je suis en train de parser un fichier xml et mettre le contenu dans un fichier texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     nodes = doc.getElementsByTagName("title");
                Node node = doc.getDocumentElement();
    ......
    for (int i = 0; i < nodes.getLength(); i++) {
                    element = (Element) nodes.item(i);
     
                    System.out.println("Description: " + readNode(element, "description"));
                    FileWriter myFile = new FileWriter("fichier"+i,true); 
                    myFile.write(readNode(element, "description").toString());
                    myFile.close();
    mon problème se présente comme ceci: le fichier est créé mais reste vide.
    Pouvez-vous m'aider?
    Merci

  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
    Oui... Et elle fait quoi la méthode readNode() ?

    Par ailleurs, il vaudrait mieux poser cette question dans le forum Java, section XML.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    merci
    je vais voir votre lien

  4. #4
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    voici la methode readNode():
    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
     
        /**
         * Méthode permettant de retourner ce que contient un noeud
         * @param _node le noeud principal
         * @param _path suite des noms des noeuds sans espace séparés par des "|"
         * @return un string contenant le valeur du noeud voulut
         */
     
        public String readNode(Node _node, String _path) {
     
            String[] paths = _path.split("\\|");
            Node node = null;
     
            if (paths != null && paths.length > 0) {
                node = _node;
     
                for (int i = 0; i < paths.length; i++) {
                    node = getChildByName(node, paths[i].trim());
                }
            }
     
            if (node != null) {
                return node.getTextContent();
            } else {
                return "";
            }
        }

  5. #5
    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
    ... et getChildByName() ?...

    Enfin bon, à moins que cette méthode fasse vraiment des choses horribles, le fichier que tu crées devrait contenir exactement ce qui s'affiche avec "Description: " dans System.out.

    Je vois pas que dire de plus.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    voici la methode getChildByName():
    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
    /**
         * renvoye le nom d'un noeud fils a partir de son nom
         * @param _node noeud pricipal
         * @param _name nom du noeud fils
         * @return le noeud fils
         */
        public Node getChildByName(Node _node, String _name) {
            if (_node == null) {
                return null;
            }
            NodeList listChild = _node.getChildNodes();
     
            if (listChild != null) {
                for (int i = 0; i < listChild.getLength(); i++) {
                    Node child = listChild.item(i);
                    if (child != null) {
                        if ((child.getNodeName() != null && (_name.equals(child.getNodeName()))) || (child.getLocalName() != null && (_name.equals(child.getLocalName())))) {
                            return child;
                        }
                    }
                }
            }
            return null;
        }
    le champ "Description " s'affiche pour System.out. mais il ne s'affiche pas au sein du fichier crée

  7. #7
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    merci j'ai réglé le problème

  8. #8
    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
    Citation Envoyé par nounouuuuu201186 Voir le message
    merci j'ai réglé le problème
    Ça aurait pu être sympa de dire quel était le problème et comment il a été résolu. Je me suis investi, après tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre confirmé Avatar de nounouuuuu201186
    Femme Profil pro
    Stagiaire
    Inscrit en
    Juillet 2011
    Messages
    169
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2011
    Messages : 169
    Par défaut
    Bonsoir,
    Le problème est que le champ "Description" dans la plupart des cas contient une chaîne vide. Donc le paramètre "_node" reste égal à "null". Le fichier xml que je suis en train de parser est un fichier RSS. Les utilisateurs sont ceux qui ajoutent le champ "Description" pour commenter une ressource. C'est pour cela que ce champ peut ne pas contenir aucune information sur la ressource.

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

Discussions similaires

  1. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32
  2. [xslt] Parser 2 fichiers XML
    Par malekms dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 30/12/2005, 12h22
  3. Parser un fichier XML
    Par Charlinecha dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 11/07/2005, 17h18
  4. [SAX] parser un fichier xml en Java
    Par royou dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/02/2005, 17h12
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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