このリンクの記事 (Android 開発者のブログ) には次のように書かれています。
XmlPullParser の使用は、Android で XML を解析するための効率的で保守しやすい方法です。歴史的に、Android にはこのインターフェースの 2 つの実装がありました。
- KXmlParser, via XmlPullParserFactory.newPullParser(). - ExpatPullParser, via Xml.newPullParser().
Xml.newPullParser() からの実装にはバグがあり、nextText() の呼び出しがドキュメントで約束されているように常に END_TAG に進むとは限りませんでした。結果として、一部のアプリは next() または nextTag() への余分な呼び出しでバグを回避している可能性があります:
...
XmlPullParserFactory.newPullParser()
これがどちらを指すのか、あるいは両方を指すのかわかりませんXml.newPullParser()
。
たとえば、次のコードは Android 2.3.3 以前でバグを引き起こしますか?
XmlPullParser xpp = XmlPullParserFactory.newInstance().newPullParser();
int event = xpp.getEventType();
while (...event not end doc and tag not equal search term...){
event = xpp.next();
}
myClass.setSomeText(xpp.nextText());