我有一个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标签。我是怎么做的
我执行以下代码
if(parser.getName().equalsIgnoreCase("media:content"))
{
Log.d("media count-->",parser.getAttributeCount()+"");
}
所以这给了我-1。
嘿,如果有人给我提示我如何获得图片网址。
答案 0 :(得分:26)
像以下
一样致电getAttributeValueparser.getAttributeValue(null, "url")
在你的if语句中。确保getEventType()
等于START_TAG,因为当您的解析器设置为媒体的END_TAG部分时,您当前的if语句也将评估为true:content(这将为您提供-1属性计数)。
修改强> 由于你遇到这么多麻烦,我希望这个小测试功能可以满足您的需求:
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"));
}
答案 1 :(得分:2)
private String readLink(XmlPullParser parser) throws IOException, XmlPullParserException {
parser.require(XmlPullParser.START_TAG, ns, "enclosure");
final String link = parser.getAttributeValue(null, "url");
return link;
}
这对我在Android中使用XmlPullParser。