2011-10-11 5 views
11

द्वारा उपयोग करते हुए मैं एक xml फ़ाइल है और मैं इसके बारे में छोटा सा हिस्सा दिखाने के लिए, सामग्री दिखाने के लिए जो मैं चाहतामैं कैसे XMLPull पार्सर

<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> 

गुण मिल अब मैं यूआरएल टैब प्राप्त करना चाहते हैं। मैं इस

मैं निम्नलिखित कोड

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

करते हैं कैसे तो यह मुझे देता है -1।

अरे अगर कोई मुझे संकेत देता है कि मैं छवि यूआरएल कैसे प्राप्त कर सकता हूं।

उत्तर

22
अपने अगर बयान के अंदर

कॉल getAttributeValue निम्नलिखित

parser.getAttributeValue(null, "url") 

की तरह। सुनिश्चित करें कि getEventType() आपके वर्तमान के बाद से START_TAG के बराबर है यदि आपका पार्सर आपके मीडिया के END_TAG भाग पर सेट होता है तो कथन का भी मूल्यांकन किया जाएगा: सामग्री (जो आपको -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")); 
} 
+0

यह त्रुटि नल पॉइंटर एक्सेप्शन –

+0

आप यह करने के लिए –

+0

यह करने के लिए सही तरीका यही कारण है कि किसी भी अन्य विधि है देता है। क्या आपने अपना स्टेटमेंट बदल दिया है ताकि पार्सर के इवेंट प्रकार को भी चेक किया जा सके? साथ ही, क्या आप वाकई सही एक्सएमएल पढ़ रहे हैं? –

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

यह XmlPullParser साथ एंड्रॉयड में मेरे लिए काम करता है।

संबंधित मुद्दे