Android 调用next()后,XmlResourceParser保持在START_文档状态
下面的代码在第4行抛出异常Android 调用next()后,XmlResourceParser保持在START_文档状态,android,android-xml,android-xmlpullparser,Android,Android Xml,Android Xmlpullparser,下面的代码在第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); 在添加调试打印语句之后,在第一次调用next()之后,解析器仍然处于START
XmlResourceParser parser = context.getResources().getXml(R.xml.file);
parser.require(XmlPullParser.START_DOCUMENT, null, null);
parser.next();
parser.require(XmlPullParser.START_TAG, null, null);
在添加调试打印语句之后,在第一次调用next()
之后,解析器仍然处于START\u DOCUMENT状态。将另一个调用添加到next()
可以解决此问题。根据官方Android参考,此类行为是错误的,因为:
开始文档
通知解析器位于文档的最开头,然后
还没有读到什么。此事件类型只能通过调用
第一次调用next()、nextToken或nextTag()之前的getEvent()
Log.d
方法之前和之后的getEventType()
和getName()
的值,您看到了什么?0
在这两种情况下都可能重复