mix*_*ixm 10 xml android ioexception xmlpullparser
如何使用pull解析器解析assets文件夹中的本地XML文件?我无法让pull解析器工作.它总是抛出一个异常.我想我无法获取文件的路径,或连接到文件.
Fra*_* C. 23
mixm,
我正在用各种方法来加载来自'assets'和'res'的本地文件,但是按照要求回答你的问题(正如其他人似乎没有):
首先,要么在测试之前确保XML是有效的,要么关闭验证,这就是你如何做到这一点并同时实例化一个pull解析器:
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setValidating(false);
XmlPullParser myxml = factory.newPullParser();
Run Code Online (Sandbox Code Playgroud)
然后打开xml文件并设置为pull解析器的输入:
InputStream raw = getApplicationContext().getAssets().open("simple.xml");
myxml.setInput(raw, null);
Run Code Online (Sandbox Code Playgroud)
现在设置你的拉环(或其他,取决于你是否想要延迟拉动,这是你的设计决定:
int eventType = myxml.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
Log.d(MY_DEBUG_TAG, "In start document");
}
else if(eventType == XmlPullParser.START_TAG) {
Log.d(MY_DEBUG_TAG, "In start tag = "+myxml.getName());
}
else if(eventType == XmlPullParser.END_TAG) {
Log.d(MY_DEBUG_TAG, "In end tag = "+myxml.getName());
}
else if(eventType == XmlPullParser.TEXT) {
Log.d(MY_DEBUG_TAG, "Have text = "+myxml.getText());
}
eventType = myxml.next();
}
} catch (XmlPullParserException e) {
Run Code Online (Sandbox Code Playgroud)
请注意myxml.getEventType(),您需要执行此操作以获取解析并处理您正在拉动的类型事件.注意:为了便于阅读,省略了catch块.
在2.1上测试了上面的内容,希望它有所帮助-Frank
| 归档时间: |
|
| 查看次数: |
11633 次 |
| 最近记录: |