我无法从位于/res/xml/testxml.xml的XML资源中读取XML数据。出于某种原因,使用我的书和在线的例子,我无法正确阅读数据。以下方法很简单;读取XML资源并在其中打印行。
public InputStream fetchLocalStream(String file){
InputStream in = null;
try {
//in = Global.gContext.openFileInput("testxml.xml");
in = Global.gContext.getResources().openRawResource(R.xml.testxml);
try {
if (in != null) {
// prepare the file for reading
InputStreamReader inputreader = new InputStreamReader(in);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
// read every line of the file into the line-variable, on line at the time
while (( line = buffreader.readLine()) != null) {
Log.d(Global.TAG,"-->Line:" + line);
// do something with the settings from the file
}
}
} catch (Exception e){}
return in;
}catch (Exception e){ Log.d(Global.TAG,"--> Failed!!!!" + e); }
return in;
}
非常感谢任何帮助。
Line:└Ç└Ç└Ç∩┐╜∩┐╜∩┐╜∩┐╜♥└Ç└Ç└Ç#└Ç└Ç└Ƕ└Ƕ└Ç└Ç└Ç└Ç└Ç└Ç└Ç└Ç└Ç♦☺►└Ç∟└Ç└Ç└Ç
Line:└Ç└Ç└Ç∩┐╜∩┐╜∩┐╜∩┐╜$└Ç└Ç└└Ç└Ç└Ç└Ç└Ç└Ç└Ç♥☺►└Ç↑└Ç└Ç└Ç
Line:└Ç└Ç└Ç∩┐╜∩┐╜∩┐╜∩┐╜♥└Ç└Ç└Ç#└Ç└Ç└Ç☻☺►└Ç$└Ç└Ç└Ç
Line:└Ç└Ç└Ç∩┐╜∩┐╜∩┐╜∩┐╜♥└Ç└Ç└Ç%└Ç└Ç└Ƕ└Ƕ└Ç└Ç└Ç└Ç└Ç└Ç└Ç└Ç└Ç♦☺►└Ç∟└Ç└Ç└Ç
Line:└Ç└Ç└Ç∩┐╜∩┐╜∩┐╜∩┐╜&└Ç└Ç└└Ç└Ç└Ç└Ç└Ç└Ç└Ç♥☺►└Ç↑└Ç└Ç└Ç
Line:└Ç└Ç└Ç∩┐╜∩┐╜∩┐╜∩┐╜♥└Ç└Ç└Ç%└Ç└Ç└Ç☻☺►└ÇL└Ç└Ç└Ç
答案 0 :(得分:2)
我遇到了同样的问题,并在anddev.org的线程“Android SAX xml not well-formed”中找到了解决方案:
发现了一个有趣的东西 - 当将xml文件从xml文件夹移动到raw时,一切运行顺利。我猜这就是为什么函数被称为openRawResource。 无论如何我认为android添加一些东西存储在非原始文件夹中的文件。但这只是一个大声的想法。
从/ res / xml移动到/ res / raw解决了我的问题。
答案 1 :(得分:1)
问题可能是字符编码问题。尝试使用XmlResourceParser,您可以通过Resources.getXml获取。 (大多数XML解析器都适应处理字符编码。)Here's an example。
http://developer.android.com/reference/android/content/res/Resources.html