2016-06-21 15 views
0

我正在嘗試SOAP解析xml使用XmlPullParser。但總是得到空作爲結果。Android:XmlPullParser getAttributeValue返回null

<soap:Body> 
<Quote> 
<ROLE>Error</ROLE> 
<ERRORCODE>3</ERRORCODE> 
<ERRORSTRING>Username and password wrong!!!</ERRORSTRING> 
</Quote> 
</soap:Body> 
</soap:Envelope> 

我想讀的每個節點值XMLPullParser

XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance(); 
XmlPullParser myparser = xmlFactoryObject.newPullParser(); 
myparser.setInput(inputStream, null); 
int event = myparser.getEventType(); 
while (event != XmlPullParser.END_DOCUMENT) 
{ 
    String name=myparser.getName(); 
    switch (event){ 
    case XmlPullParser.START_TAG: 
    if(name.equals("ERRORSTRING")){ 
    Log.e("Tag ","if xml data "+myparser.getAttributeValue(name,"value")); 
    } 
    break; 
    case XmlPullParser.END_TAG: 
    if(name.equals("Quote")){ 
    Log.e("Tag ","xml data "+myparser.getAttributeValue(null,"ERRORSTRING")); 
    } 
    break; 
    } 
    event = myparser.next(); 
} 

我得到空值作爲結果。

任何人都可以幫助我。

回答

0

這樣做:

XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance(); 
XmlPullParser myparser = xmlFactoryObject.newPullParser(); 
myparser.setInput(inputStream, null); 
int event = myparser.getEventType(); 
while (event != XmlPullParser.END_DOCUMENT) 
{ 
    String name=myparser.getName(); 
    switch (event){ 
    case XmlPullParser.START_TAG: 
    if(name.equals("ERRORSTRING")){ 
    Log.e("Tag ","if xml data "+myparser.getAttributeValue(name,"value")); 
    if(name.equals("Quote")){ 
    Log.e("Tag ","xml data "+myparser.getAttributeValue(null,"ERRORSTRING")); 
    } 
    break; 

    case XmlPullParser.END_TAG: 
    break; 
    } 
    event = myparser.next(); 
}