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 :

Resultat d'un parsing de fichier XML [SAX]


Sujet :

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

  1. #1
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Resultat d'un parsing de fichier XML
    j'ai parser un fichier XML, le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="UTF-8"?>
    <annuaire>
     <personne id="0">
     <nom>nom0</nom>
     <prenom>prenom0</prenom>
     <adresse>adresse0</adresse>>
     </personne>
     <personne id="1">
     <nom>nom1</nom>
     <prenom>prenom1</prenom>>
     <adresse>adresse1</adresse>
     </personne>
    </annuaire>
    et ca donner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    *** Erreur ***
    Message : Document root element "annuaire", must match DOCTYPE root "null".
    Ligne 2, colonne 11
    Public id : null
    System id : file:/C:/Documents%20and%20Settings/AnisKhalifa/workspace/titi/./ErreurSAX.xml
    *** Erreur ***
    Message : Document is invalid: no grammar found.
    Ligne 2, colonne 11
    Public id : null
    System id : file:/C:/Documents%20and%20Settings/AnisKhalifa/workspace/titi/./ErreurSAX.xml
    est ce que vous pouvez m'expliquer ce resultat ,et plus precisement "Public id :null" et "System id"
    merci

  2. #2
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    je pense qu'il manque une bibliotheque de reference pour connetre les erreurs!
    quelqu'un peu confirmer ca?

  3. #3
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Bonjour,

    C'est tres fdiccile det'aider avec les informations que tu nosu fournis.
    Tu utilise quoi comme type de parser SAX, DOM? Quel est l'API utilises tu Xerces, Dom4j, JDOM...?

    Mais nous ton code.

    Angelo

  4. #4
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    voila le code
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    import org.xml.sax.*;
    import org.xml.sax.helpers.*;
    import javax.xml.parsers.*; 
    import java.io.*; 
    import java.util.*;
     
    public class GestionnaireDErreurs extends DefaultHandler{
    	protected String message(SAXParseException e){
    		String message = "Message : "+e.getMessage()+"\n";
    		message += "Ligne "+e.getLineNumber()+", colonne "+e.getColumnNumber()+"\n";
    		message += "Public id : "+e.getPublicId()+"\n";
    		message += "System id : "+e.getSystemId();
    		return message;
    	}
    	protected void printSAXException(SAXParseException e){
    		System.out.println(message(e));
    		if(e.getException() != null){
    			e.getException().printStackTrace();	
    		}
    	}
    	public void warning(SAXParseException exception) throws SAXException{
    		System.out.println("*** Warning ***");
    		printSAXException(exception);
    	}
    	public void error(SAXParseException exception) throws SAXException{
    		System.out.println("*** Erreur ***");
    		printSAXException(exception);
    	}
    	public void fatalError(SAXParseException exception) throws SAXException{
    		String message = "*** Erreur fatale ***\n";
    		message += message(exception);
    		SAXException se = new SAXException(message, exception);
    		throw se;
    	}
    	public static void main(String[] args){
    		try{
    			SAXParserFactory fabrique = SAXParserFactory.newInstance();
    			fabrique.setValidating(true);
    			SAXParser parseur = fabrique.newSAXParser();
     
    			File fichier = new File("./ErreurSAX.xml");
    			DefaultHandler handler = new GestionnaireDErreurs();
    			parseur.parse(fichier,handler);
     
    		}catch(ParserConfigurationException pce){
    			System.out.println("Erreur de configuration du parseur");
    		}catch(SAXException se){
    			System.out.println(se.getMessage());
    		}catch(IOException ioe){
    			System.out.println("Erreur d'entrée/sortie");
    		}
    	}
    }

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Salut, je ne suis pas experte en XML mais je pense qu'il te manque le DOCTYPE au début de ton document. Le ".setValidating(true)" tente de valider ton fichier XML. Cependant pour cette validation il te faut un doctype. Essaie 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
     
    <!DOCTYPE annuaire>
    <?xml version="1.0" encoding="UTF-8"?>
    <annuaire>
     <personne id="0">
     <nom>nom0</nom>
     <prenom>prenom0</prenom>
     <adresse>adresse0</adresse>
     </personne>
     <personne id="1">
     <nom>nom1</nom>
     <prenom>prenom1</prenom>
     <adresse>adresse1</adresse>
     </personne>
    </annuaire>
    Ca pourrait peut etre passer. Sinon tu pourrais enlever la ligne ".setValidating(true)" si la validation de ton fichier n'est pas nécessaire.

  6. #6
    Membre expérimenté
    Avatar de azerr
    Homme Profil pro
    Ingénieur Etude JEE/Eclipse RCP
    Inscrit en
    Avril 2006
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Etude JEE/Eclipse RCP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 942
    Points : 1 464
    Points
    1 464
    Par défaut
    Ok,

    Il ne faut pas que tu mettes setValidating a true sur ta factory SAX, car ca signifie qu'il doit valider le flux XML a l'aide d'uen DTD ou un schme XML qui doit etre defini dans le XML. Dans ton cas tu n'a pas besoin de valider ton flux XML, donc modifie ton code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fabrique.setValidating(false);
    Angelo

  7. #7
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    merci beaucoup ca marche tres bien

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

Discussions similaires

  1. Parsing de fichier XML
    Par winflow dans le forum C#
    Réponses: 5
    Dernier message: 06/02/2014, 08h19
  2. [JDOM] Problème avec le parsing du fichier XML
    Par nounouuuuu201186 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 10/02/2012, 14h08
  3. Parsing de fichiers XML : Exception bien bizarre
    Par Grumpy64 dans le forum Android
    Réponses: 11
    Dernier message: 06/11/2010, 14h32
  4. Réponses: 3
    Dernier message: 14/11/2009, 09h26
  5. Parsing de fichier XML en C
    Par longbeach dans le forum XML
    Réponses: 12
    Dernier message: 12/12/2006, 16h31

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