Java xml [Résolu]

Signaler
Messages postés
8
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
30 juin 2009
-
Messages postés
8
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
30 juin 2009
-
Bonsoir,

J'ai un problème d'exécution au niveau de mon code java pour lire un fichier xml
après de saisir le nom du fichier xml pour l'exécuter il m'affiche ces erreurs.

Exception in thread "main"

java.lang.IllegalArgumentException: InputStream cannot be nullat javax.xml.parsers.SAXParser.parse(Unknown Source)

at cours10.ParcoursArbreSax.(

ParcoursArbreSax.java:31)at cours10.exo1.main(

exo1.java:15

Merci de m'aider.

4 réponses

Messages postés
1155
Date d'inscription
samedi 17 janvier 2004
Statut
Membre
Dernière intervention
29 avril 2011
7
Salut,

si tu nous montres ton code, ce sera plus simple pour te dire où est l'erreur.
Là je dirais que ton fichier n'a pas été trouvé.
Messages postés
8
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
30 juin 2009

Code pour parcourir le fichier xml

import java.io.*;


import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;

public class ParcoursArbreSax extends DefaultHandler {
 
 /** Parcours d'une arborescence XML
  * @param fxml flot d'entrée XML
  */
 public ParcoursArbreSax(InputStream isXml) {
  super();
  // création d'une instance d'API SAX
  SAXParserFactory factory = SAXParserFactory.newInstance();
  factory.setValidating(true);
  
  // création d'un objet de parcours
  SAXParser saxParser = null;
  try {saxParser = factory.newSAXParser();}   
  catch (SAXException e) {}
  catch (ParserConfigurationException e) {}
  
  // parcours utilisant le gestionnaire d'événement
  try {saxParser.parse(isXml, this);}
  catch (IOException e) {}
  catch (SAXException e) {}
 }


 /** Traitement d'événements de type début du document */
 public void startDocument() throws SAXException{
  System.out.println("début du document:");
 }
 
 /** Traitement d'événements de type fin du document */
 public void endDocument() throws SAXException{
  System.out.println("fin du document:");
 }
 
 /** Traitement d'événements de type balise de début
  *  @param namespaceURI espace de noms
  *  @param sName nom de la balise (si espace de noms)
  *  @param qName nom de la balise (si pas d'espace de noms)
  *  @param attrs attributs de la balise
  */
 public void startElement(String namespaceURI, String sName,
    String qName, Attributes attrs) throws SAXException {
   String eName = sName;
   if ("".equals(eName)) eName = qName;
   System.out.print("balise de début: " + eName);
   if (attrs != null) {
    // attributs
    for (int i = 0; i < attrs.getLength(); i++) {
     String aName = attrs.getLocalName(i);
     if ("".equals(aName)) aName = attrs.getQName(i);
     // nom
     System.out.print(" " + aName + "="");
     // valeur
     System.out.print(attrs.getValue(i)+""");
     }
    }
    System.out.println("");
  }
 
 /** Traitement d'événements de type balise de fin
     *  @param namespaceURI espace de noms
  *  @param sName nom de la balise (si espace de noms)
  *  @param qName nom de la balise (si pas d'espace de noms)
  */
 public void endElement(String namespaceURI, String sName,
   String qName) throws SAXException {
  String eName = sName;
  if ("".equals(eName)) eName = qName;
  System.out.println("balise de fin: "+eName);
 }
 
 /** Traitement d'événements de type non-balise
 *  @param buf tableau contenant l'ensemble du texte analysé
 *  @param offset emplacement du texte entre deux balises
 *  @param len longueur du texte
 */
 public void characters(char buf[], int offset, int len)
  throws SAXException
  {
   String s = new String(buf, offset, len);
   String st = s.trim();
   if (st.length() > 0)
    System.out.println(st);
  }
}
Messages postés
8
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
30 juin 2009

sa c'est le code d'exécution :




import java.io.*;
















public





class

exo1 {



public





static





void

main(String[] args) {File fxml =



new

File(Keyboard. getString ());FileInputStream isxml =



null

;



try

{isxml =


new

FileInputStream(fxml);}



catch

(IOException e) {}ParcoursArbreSax ges =



new

ParcoursArbreSax(isxml);System.



out

.println(

"salut"
+ ges);}

}
Messages postés
8
Date d'inscription
samedi 20 juin 2009
Statut
Membre
Dernière intervention
30 juin 2009

J'ai pu résoudre mon problème.

Merci.