以下代码在第 4 行抛出异常
XmlResourceParser parser = context.getResources().getXml(R.xml.file);
parser.require(XmlPullParser.START_DOCUMENT, null, null);
parser.next();
parser.require(XmlPullParser.START_TAG, null, null);
添加调试打印语句后,发现解析器在第一次调用后仍处于START_DOCUMENTnext()
状态。添加另一个调用来next()
解决问题。根据官方 Android 参考资料,这种行为是错误的,因为它说:
START_DOCUMENT
表示解析器位于文档的最开头,尚未读取任何内容。这种事件类型只能通过在第一次调用 next()、nextToken 或 nextTag() 之前调用 getEvent() 来观察。