2010-08-04 143 views
3

我試圖做XML解析程序。 我也用我的XML文件FileInputStream。 我將XML文件放置在android的資產文件夾META-INF文件夾下。 這是文件名是「container.XML」。未找到Android文件路徑

這裏是我的代碼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); 

     } 

這裏是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(); 
       } 
      } 
     }); 

我唯一的錯誤消息。 希望有所幫助!

+0

你看到了什麼錯誤信息? – oli 2010-08-04 09:52:07

回答

3

我假設你已經將你的container.xml文件放入你的應用程序資產目錄中的apk包內。

要打開android應用程序的/ assets目錄中的文件,您需要一個AssetManager。 Context對象上提供了getAssets(),因此可用於您的活動或服務。

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