Java xml

Résolu
eyakat Messages postés 8 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 30 juin 2009 - 22 juin 2009 à 23:01
eyakat Messages postés 8 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 30 juin 2009 - 23 juin 2009 à 11:54
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

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
23 juin 2009 à 10:04
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é.
3
eyakat Messages postés 8 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 30 juin 2009
23 juin 2009 à 10:38
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);
  }
}
0
eyakat Messages postés 8 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 30 juin 2009
23 juin 2009 à 10:39
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);}

}
0
eyakat Messages postés 8 Date d'inscription samedi 20 juin 2009 Statut Membre Dernière intervention 30 juin 2009
23 juin 2009 à 11:54
J'ai pu résoudre mon problème.

Merci.
0
Rejoignez-nous