How I get Attribute using by XMLPull parser How I get Attribute using by XMLPull parser android android

How I get Attribute using by XMLPull parser


Call getAttributeValue like the following

parser.getAttributeValue(null, "url") 

inside of your if statement. Make sure getEventType() is equal to START_TAG since your current if statement will also evaluate to true when your parser is set to the END_TAG portion of your media:content (which would give you a -1 attribute count).

EDIT Since you are having so much trouble, I hope this little test function does what you want:

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


private String readLink(XmlPullParser parser) throws IOException, XmlPullParserException {    parser.require(XmlPullParser.START_TAG, ns, "enclosure");    final String link = parser.getAttributeValue(null, "url");    return link;}

This works for me in android with XmlPullParser.