0

XmlPullParser のコードで問題が発生しましたが、これが私だけなのかバグなのかわかりません。

xmlpullparser を使用して xml ファイルを解析するだけです (次のように)。

   XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
         factory.setNamespaceAware(true);

         XmlPullParser xpp = factory.newPullParser();
         xpp = c.getResources().getXml(id);
         int quantity = 0;
         int eventType = xpp.getEventType();
         while (eventType != XmlPullParser.END_DOCUMENT) {
            if (eventType == XmlPullParser.START_TAG) {
                  Log.d("al","Start tag "+xpp.getPrefix());
            }
            xpp.next();
        }

プログラムが機能しない、RuntimeException、getPrefix not supported と表示されます。私はそれについて何も見つけませんでした。私は何か間違っていますか?

(私はAPI 7を使用しており、開発サイトはAPI 1からここにあると言っています)

4

2 に答える 2

0

XmlPullParserはインターフェースであるため、デフォルトの実装を取得する必要がありXmlPullParser、その実装のgetPrefix()メソッドは実装されていないため例外をスローしてgetPrefix()います。

于 2011-03-10T18:36:42.780 に答える
0

問題は、

xpp = c.getResources().getXml(id);

ロビーが言ったように、 getPrefix() は実装されていませんでした

その代わりに、私は:

XmlPullParser xpp = factory.newPullParser();
InputStreamReader isr = new InputStreamReader(c.getResources().openRawResource(id));
xpp.setInput(isr);

私の工場がNampespaceに対応しており、 getResources().getXml() が名前空間を気にしない XmlRessourceParser を返すためでしょうか?

于 2011-03-11T08:57:40.703 に答える