初めて XML を正常に解析しました。コードは次のとおりです。
XmlPullParser xmlPullParser = getResources().getXml(R.xml.antennas);
try
{
int eventType = xmlPullParser.getEventType();
boolean requiredVendorLabel = false;
while (eventType != XmlPullParser.END_DOCUMENT)
{
if(eventType == XmlPullParser.START_TAG && xmlPullParser.getName().equals("vendor"))
{
if(xmlPullParser.getAttributeValue(0).equals(newVendor.toString())) {
requiredVendorLabel = true;
}
else {
requiredVendorLabel = false;
}
}
if(requiredVendorLabel && eventType == XmlPullParser.START_TAG && xmlPullParser.getName().equals("model"))
{
antennas.add(xmlPullParser.getAttributeValue(0));
}
eventType = xmlPullParser.next();
}
}
catch (Throwable e) {
Toast.makeText(getActivity(), "Cannot load file for parsing", Toast.LENGTH_SHORT);
}
次に、同じコードで同じファイルを再度解析しようとしました。しかし、私は何も持っていません。while ループは 1 回だけ処理され、終了しました。xmlPullParse.getLineNumber は (-1) を返しましたが、0 より大きい数値を返すべきだと思いました。
xml ファイルを再度解析するにはどうすればよいですか?