我有一个大约72MB的XML数据库。它有大约17万个这样的条目。我正在使用XmlPullParser分析此数据库。解析过程非常长(超过5分钟)。我认为这不利于词典的应用。我是这样分析的:
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
File file = new File(Environment.getExternalStorageDirectory()
+ "/JMdict/JMdict.xml");
InputStream stream = new FileInputStream(file);
xpp.setInput(stream, null);
int index = 0;
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT && index < 10) {
if (eventType == XmlPullParser.START_TAG) {
if (xpp.getName().equals(ENTRY_GLOSS)) {
xpp.next();
if (xpp.getText().contains(searchWord)) {
index++;
Log.d(LOGTAG, xpp.getText());
}
}
}
eventType = xpp.next();
}
我做错了什么?为了将解析过程加快到不到一秒钟,需要更改什么?
尝试使用Simple框架解析xml,它比XmlPullParser
更快
我认为XmlPullParser是高度优化和快速的。然而,使用它时也有一些技巧。例如,尝试跳过那些你不需要的标签