问题描述
- android中读取根目录下的xml文件
-
显示无法读取文件package com.example.testreadxml; import java.io.IOException; import java.io.InputStream; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.app.Activity; import android.os.Bundle; import android.sax.TextElementListener; import android.util.Xml; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.textview1); InputStream is = MainActivity.class.getClassLoader().getResourceAsStream("weather.xml"); XmlPullParser parser = Xml.newPullParser(); try { parser.setInput(is, "utf-8"); int type = parser.getEventType(); StringBuilder sb = new StringBuilder(); while (type!= XmlPullParser.END_DOCUMENT){ String str = parser.nextText(); sb.append(str); parser.next(); } tv.setText(sb.toString()); } catch (XmlPullParserException e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(this, "失败", 0).show(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
weather.xml代码
<?xml version="1.0" encoding="utf-8"?> <city > 上海 </city>
解决方案
检查下文件是否存在、路径权限等等。
解决方案二:
parser.nextText();这一步异常 肯定是 解析有问题
解决方案三:
你从网上找一个正确的xml文件来验证一下代码。然后,如果代码没问题,那么就是xml的文件的问题。
建议你这个xml文件放到assert里面。不要和源代码放一起。
还有,
上海
这个里面修改一下,不要有多余的空格。比如改为:
上海
时间: 2024-10-04 09:31:06