我无法让 getPrefix() 或 getNamespacePrefix() 在 android 上工作

发布于 2024-10-21 04:20:12 字数 756 浏览 5 评论 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 support 。 我对此一无所获。 我做错了什么吗?

(我正在使用 api 7,anddev 网站说它从 api 1 开始就在这里)

I got an issue with my code with XmlPullParser and don't know if this is just me or a bug.

i simply parse a xml file using xmlpullparser (like follow):

   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();
        }

and the program don't work , it say RuntimeException , getPrefix not supported .
i found nothing about that.
am i doing something wrong ?

(i'm using api 7 and anddev site say it's here since api 1)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

辞取 2024-10-28 04:20:12

XmlPullParser 是一个接口,因此您必须获得一些默认的 XmlPullParser 实现,并且该实现的 getPrefix() 方法会引发异常,因为 getPrefix() 未实现。

XmlPullParser is an interface so you must be getting some default XmlPullParser implementation, and that implementation's getPrefix() method is throwing the exception because getPrefix() isn't implemented.

小瓶盖 2024-10-28 04:20:12

问题就像

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

Robby 所说的那样, getPrefix() 没有实现,

而不是实现,我这样做:

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

可能是因为我的工厂支持 Nampespace 并且 getResources().getXml() 返回一个不关心命名空间的 XmlRessourceParser ?

The issue was the

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

like Robby said , getPrefix() wasn't implemented

instead of that ,i do :

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

can it be because my factory is Nampespace aware and the getResources().getXml() return a XmlRessourceParser that don't care of namespace ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文