2010-08-04 164 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