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 [SAX]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut Parser un fichier
    Salut !

    Voila, j'ai un programme qui parse (via SAX) un fichier xml pour la configuration. Or lorsque j'ajoute ce fichier xml à mon application "jarée" il ne le trouve pas...

    Alors j'ai essayé comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    InputStream is = ui.getClass().getResourceAsStream(fileName);
    //Handler definition
    //...
     
    parser.parse(is, handler);
    Rien à faire, j'ai l'erreur suivante :
    Exception in thread "main" java.lang.IllegalArgumentException: InputStream cannot be null
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at com.xxxxx.simtool.ConfigParser.readXMLConfFile(ConfigParser.java:85)
    at com.xxxxx.simtool.UI.<init>(UI.java:122)
    at com.xxxxx.simtool.UI.main(UI.java:573)
    Alors que mon fichier existe bien pourquoi l'inputstream est-il null ?
    Merci d'avance
    +++
    Ju

  2. #2
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Au cas où, voici la méthode... UI est une classe (GUI) qui appelle cette méthode :
    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    public static Hashtable readXMLConfFile(String fileName, UI ui) {
    		final Hashtable hUICC = new Hashtable();
    		final UI ui1 = ui;
    		try {
    			// create a SAX parser factory
    			SAXParserFactory factory = SAXParserFactory.newInstance();
     
    			// create SAX parser
    			SAXParser parser = factory.newSAXParser();
     
    			// XML file reading with a DefaultHandler
    			// File file = new File(fileName);
    			InputStream is = ui.getClass().getResourceAsStream(fileName);
     
    			DefaultHandler handler = new DefaultHandler() {
    				public void startDocument() throws SAXException {
    					ui1.insertText("Configuration file opened, start parsing...", "info");
    				}
     
    				public void endDocument() throws SAXException {
    					ui1.insertText("End of configuration : " + hUICC.size()
    							+ " efs set. File closed", "info");
    				}
     
    				public void startElement(String uri, String localName,
    						String qName, Attributes attributes)
    						throws SAXException {
    					if (qName.equalsIgnoreCase("ef")) {
    						String efName, efId;
    						if (attributes != null && attributes.getLength() == 2) {
    							efName = attributes.getValue("name").toLowerCase();
    							efId = attributes.getValue("id").toLowerCase();
    							EF currentEF = new EF(efName, efId);
    							hUICC.put(efId, currentEF);
    						}
    					}
    				}
     
    				public void endElement(String uri, String localName,
    						String qName) throws SAXException {
    				}
     
    				public void characters(char[] ch, int start, int length)
    						throws SAXException {
    				}
    			};
    			parser.parse(is, handler);
    			is.close();
    			//parser.parse(file, handler);
     
    		} catch (ParserConfigurationException pce) {
    			ui1
    					.insertText(
    							"Error : parser configuration",
    							"error");
    		} catch (SAXException se) {
    			ui1.insertText("Parsing error", "error");
    		} catch (IOException ioe) {
    			JOptionPane
    					.showMessageDialog(
    							null,
    							"Configuration file (conf.xml) has not been found. \nSorry for the convenience.\nPlease get the file and restart the application.",
    							"Error", JOptionPane.ERROR_MESSAGE);
    			System.exit(0);
    		}
    		return hUICC;
    	}
    Merci à ceux qui prendront le temps de m'aider...
    +++
    Ju

  3. #3
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Merci la FAQ...
    J'appelai ma méthode comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ConfigParser.readXMLConfFile("./conf.xml", this);
    Or il faut enlever le "."
    Voila

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

Discussions similaires

  1. [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
  2. parser un fichier .dtd
    Par bgranou dans le forum Valider
    Réponses: 2
    Dernier message: 04/06/2004, 19h53
  3. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08
  4. parser un fichier avec xerces
    Par traiangueul dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 02/02/2004, 18h14
  5. parser un fichier html
    Par noarno dans le forum ASP
    Réponses: 2
    Dernier message: 10/12/2003, 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