xiaoyan_12 2013-03-11 02:16 采纳率: 25%
浏览 2345
已采纳

通过 XMLPull 解析器如何获得属性使用?

我贴出xml文件的一部分代码,显示我想获得的内容

<media:content medium="image" url="http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg">
                <media:credit role="provider">Getty Images file</media:credit>
                <media:copyright>2010 Getty Images</media:copyright>
                <media:text><![CDATA[<p><a href="http://www.msnbc.msn.com/id/44854320/ns/politics-decision_2012/"><img align="left" border="0" src="http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg" alt="Mitt Romney speaks at the National Press Club March 5, 2010 in Washington, D.C." style="margin:0 5px 5px 0" /></a></p><br clear="all" />]]></media:text>
            </media:content>

现在我想检索 URL tab,如何检索呢?
用的下面的代码:

if(parser.getName().equalsIgnoreCase("media:content"))
{
    Log.d("media count-->",parser.getAttributeCount()+"");
}      

然后给出的是-1.
请求大家给点意见,如何得到图像的url?

  • 写回答

1条回答

  • zxd_72 2013-03-11 03:35
    关注

    在if语句中调用 getAttributeValue

    parser.getAttributeValue(null, "url") 
    

    当 media:content 的解析器设置为END_TAG 部分,现在的if 语句也可能是 true,所以确保 getEventType()和 START_TAG 相同。

    public void parseXml() throws XmlPullParserException, IOException
    {
        XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
        XmlPullParser parser = factory.newPullParser();
        parser.setInput(new StringReader(
                "<media:content medium=\"image\" url=\"http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg\">"
                        + "<media:credit role=\"provider\">Getty Images file</media:credit>"
                        + "<media:copyright>2010 Getty Images</media:copyright>"
                        + "<media:text><![CDATA[<p><a href=\"http://www.msnbc.msn.com/id/44854320/ns/politics-decision_2012/\"><img align=\"left\" border=\"0\" src=\"http://msnbcmedia.msn.com/j/MSNBC/Components/Photo/_new/111010-romney-health-4p.thumb.jpg\" alt=\"Mitt Romney speaks at the National Press Club March 5, 2010 in Washington, D.C.\" style=\"margin:0 5px 5px 0\" /></a></p><br clear=\"all\" />]]></media:text>"
                        + "</media:content>"));
    
        while (!"media:content".equals(parser.getName()) && parser.getEventType() != XmlPullParser.START_TAG) {
            parser.next();
        }
        Log.d("media count -->", parser.getAttributeValue(null, "url"));
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)