0

私は約 72MB の XML データベースを持っています。このような〜170kのエントリがあります。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();
            }

私が間違っていることは何ですか?解析プロセスを 1 秒未満に高速化するには、何を変更すればよいでしょうか?

4

2 に答える 2

0

Simple Framework を使用して xml を解析してみてください。XmlPullParser

于 2014-08-31T07:19:20.257 に答える