我尝试做XML解析程序。 我还使用 FileInputStream 作为我的XML文件。 我将XML文件放在android的assets文件夹META-INF文件夹下。 那个文件名是“container.XML”。
这是我的代码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 :(得分:3)
我假设您已将container.xml文件放在apk包内的应用程序资产目录中。
要在Android应用的/ assets目录中打开文件,您需要AssetManager。 getAssets()在Context对象上可用,因此可供您的活动或服务使用。
AssetManager mgr = getContext().getAssets();
InputStream in = mgr.open("META-INF/container.xml");
InputStreamReader isr = new InputStreamReader(in);
//... Rest of the code