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 :

probleme parsage xml


Sujet :

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

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut probleme parsage xml
    Bonjour,

    je parse un document xml mais je rencontre cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Fatal Error] :1:510: The element type "Directeur" must be terminated by the matching end-tag "</Directeur>".
    Pourtant il n'y a pas d'erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <Directeurs><Directeur><ID>11122</ID><Nom>test</Nom><Prenom>directeur 2</Prenom></Directeur><Directeur><ID>1122</ID><Nom>test</Nom><Prenom>directeur etc</Prenom></Directeur></Directeurs>
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    InputSource is = new InputSource(new StringReader(xml)); 
     
    saxReader.parse(is);
    Merci de votre aide

  2. #2
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Bonjour,

    Peut on avoir plus de détails?

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut
    Oui biensur,

    le document xml à parser est dans un string.

    Je pense que mon problème vient de l'encodage.

    je créer un string à partir d'un fichier sur mon ordinateur, c'est peut être à ce moment que l'encodage est modifié ???

  4. #4
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    On a besoin de ton programme en détail. Ceci

    InputSource is = new InputSource(new StringReader(xml));

    saxReader.parse(is);

    N'est pas suffisant/incomplet et ca ne peut pas compiler

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut
    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
     
    		saxReader = new SAXParser();
    		sch = new SimpleContentHandler();
    		saxReader.setContentHandler(sch);
     
    //xml dans un string 
    	String xml  = decrypteur.getHeader(nomFichier); 
    InputSource s = new InputSource(new StringReader(xml)); 
    		try {
    			saxReader.parse(s);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (SAXException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

  6. #6
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Ce morceau de programme marche bien sans erreur

    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
    28
    29
    30
     
      private void testParse(String xmlString)
      {
        // create factory
        SAXParserFactory factory = SAXParserFactory.newInstance();
        DefaultHandler handler =    new DefaultHandler();
     
        // set it so that it is validating and namespace aware
        factory.setValidating( true );
        factory.setNamespaceAware( true );
        try
        {
          SAXParser parser = factory.newSAXParser();
          parser.parse( new InputSource(new StringReader(xmlSamples)), handler );
          System.out.println();
        }
        catch(IOException e)
        {
          e.printStackTrace();
        }
        catch( SAXException e )
        {
          e.printStackTrace();
        }
        catch( ParserConfigurationException e )
        {
          e.printStackTrace();
        }
     
      }

    Et l'affichage

    Parsing OK for :<?xml version="1.0" encoding="utf-8"?>
    <Directeurs>
    <Directeur>
    <ID>11122</ID>
    <Nom>test</Nom>
    <Prenom>directeur 2</Prenom>
    </Directeur>
    <Directeur>
    <ID>1122</ID>
    <Nom>test</Nom>
    <Prenom>directeur etc</Prenom>
    </Directeur>
    </Directeurs>

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Par défaut
    J'arrive à parser d'autre documents sans soucis mais la je rencontre vraiment l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    The element type "Directeur" must be terminated by the matching end-tag "</Directeur>".
    Il n'y a pourtant pas de problème de fermeture de balise.

    J'obtiens le string contenant le xml , à partir d'un fichier (cripté) de cette facon :

    fichier xml --> tableau de bytes -->decryptage tableau de byte--> string

    je pense que le probleme vient donc du string :

    j'ai essayé sans succés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String xml  = decrypteur.getHeader(nomFichier);
    xmlutf8 = new String(xml.getBytes(), "utf-8");

    merci de ton aide

  8. #8
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    D'après ce que tu dis

    J'obtiens le string contenant le xml , à partir d'un fichier (cripté) de cette facon :

    fichier xml --> tableau de bytes -->decryptage tableau de byte--> string
    Je me demande si dans ton string décrypté il y a des caractères invisibles. À vérifier.

    Sinon la chaine suivante marche très bien
    <Directeurs><Directeur><ID>11122</ID><Nom>test</Nom><Prenom>directeur 2</Prenom></Directeur><Directeur><ID>1122</ID><Nom>test</Nom><Prenom>directeur etc</Prenom></Directeur></Directeurs>

Discussions similaires

  1. [SAX] parsage xml sax probleme valeur null
    Par toma03 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 24/02/2012, 12h33
  2. [DOM] Parsage XML en PHP 4
    Par Huntress dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 07/12/2005, 22h24
  3. probleme IE + XML
    Par hobbes80 dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 03/06/2005, 09h21
  4. Réponses: 2
    Dernier message: 07/01/2005, 20h40
  5. [FLASH MX] Probleme avec XML
    Par celina5880 dans le forum Flash
    Réponses: 4
    Dernier message: 16/12/2004, 19h30

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