2010-08-04 4 views
3

J'essaie de faire le programme d'analyse XML. J'ai également utilisé FileInputStream pour mon fichier XML. J'ai placé le fichier XML sous le dossier des actifs d'android, dossier META-INF. Le nom de ce fichier est "container.XML".Chemin du fichier Android NON trouvé

Voici mon code parseXML,

public void parseXMLinfoBook() throws FileNotFoundException, ParserConfigurationException, SAXException{ 

     FileInputStream in = new FileInputStream("file:///android_asset/META-INF/container.xml"); 

     StringBuffer inLine = new StringBuffer(); 
     InputStreamReader isr = new InputStreamReader(in); 

     BufferedReader inRd = new BufferedReader(isr); 

     SAXParserFactory spf=SAXParserFactory.newInstance(); 
     SAXParser spr=spf.newSAXParser(); 
     XMLReader xmlreader = spr.getXMLReader(); 

     XmlHandler xmlhe=new XmlHandler(); 
     xmlreader.setContentHandler(xmlhe); 

     } 

est ici le code Button.SetonClick,

public void onClick(View v) { 
       // TODO Auto-generated method stub 
       try { 
        parseXMLinfoBook(); 
       } catch (FileNotFoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
        tv.setText("ErrorPath "+e.getMessage()); 
       } catch (ParserConfigurationException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } catch (SAXException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 
     }); 

Je suis seul message d'erreur. Espérons que l'aide!

+0

Quel message d'erreur voyez-vous? – oli

Répondre

3

Je suppose que vous avez placé votre fichier container.xml dans le répertoire des ressources de votre application dans le paquet apk.

Pour ouvrir les fichiers dans le répertoire/assets de votre application Android, vous avez besoin d'un AssetManager. Le getAssets() est disponible dans l'objet Contexte et donc disponible pour votre activité ou service.

AssetManager mgr = getContext().getAssets(); 
InputStream in = mgr.open("META-INF/container.xml"); 
InputStreamReader isr = new InputStreamReader(in); 
//... Rest of the code