XmlPullParser - 仅查找“<title>”标记,但返回“&lt; media:title&gt;”的结果太</TITLE>

时间:2012-01-19 21:18:14

标签: java android

我正在尝试使用XmlPullParser解析rss提要,查找<title>标记,如果找到了标记,则提取内部文本。
对于简单的rss文件,一切都很有用,但如果rss feed包含这样的内容:<media:title type="html">,那么该行也会被处理。

然而,这不是预期的结果,我只关注<title><media:title type="html">

我的问题是如何修改我的代码来实现这一点,或者我在这里缺少什么?

try {

        URL url = new URL("http://androidresearch.wordpress.com/feed/");

        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        XmlPullParser xpp = factory.newPullParser();

        xpp.setInput(getInputStream(url), "UTF_8");

        int eventType = xpp.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {

            if (eventType == XmlPullParser.START_TAG) {
                if (xpp.getName().equalsIgnoreCase("title")) {
                    items.add(xpp.nextText());
                } else if (xpp.getName().equalsIgnoreCase("link")) {
                    // Log.d("GREC", xpp.nextText());
                    links.add(xpp.nextText());
                }
            }

            eventType = xpp.next();
        }

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (XmlPullParserException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:4)

您可以在factory中关闭命名空间感知,也可以通过getNamespaceNO_NAMESPACE

检查命名空间是否为空