0

我有大约 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();
            }

我做错了什么?为了将解析过程加快到不到一秒,需要进行哪些更改?

4

2 回答 2

0

我认为 XmlPullParser 是高度优化和快速的。但是,使用它时有一些技巧。例如,尝试跳过那些你不需要的标签

于 2015-04-16T05:16:48.943 回答
0

尝试使用Simple Framework 解析 xml ,它比XmlPullParser

于 2014-08-31T07:19:20.257 回答