简体   繁体   中英

Not able to get the values from soap response

This is my code

SoapObject request = new SoapObject(NAMESPACE,METHOD_NAME);
    request.addProperty("MobileNbr","9959077764");
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet=true;
    envelope.setOutputSoapObject(request);
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    try {
        androidHttpTransport.call(SOAP_ACTION, envelope);
        androidHttpTransport.debug = true;
        SoapObject response = (SoapObject)envelope.bodyIn;
        System.out.println(response);
        String result = response.getProperty(0);
        System.out.println(result);
    }catch (XmlPullParserException | IOException e) {
        e.printStackTrace();
    }   

This is the Response I'm getting.

GetCabListResponse{GetCabListResult=<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>; }

This is the result getting from response.getProperty(0);

<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>

I want the values of status and cab

Here's a regex solution to extract your data from returned XML:

    String cab ="<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>";
    Pattern p = Pattern.compile("<status>([^<]+)</status><cab>([^<]+)</cab>");
    Matcher m = p.matcher(cab);
    if(m.find()) {
        System.out.println("Status: " + m.group(1));
        System.out.println("Cab: " + m.group(2));
    }

Multiple cabs:

    String cab ="<CabList><status>0</status><cab>AP09BS9127</cab><cab>AP09BS9126</cab></CabList>";
    Pattern p = Pattern.compile("<status>([^<]+)</status>((<cab>([^<]+)</cab>)*)");
    Matcher m = p.matcher(cab);
    if(m.find()) {
        System.out.println("Status: " + m.group(1));
        List<String> cablist = Arrays.asList(m.group(2).replace("<cab>", "").replace("</cab>", "#").split("#"));
        System.out.println("Cab: " + cablist);          
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM