Reputation: 621
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
Upvotes: 0
Views: 63
Reputation: 13858
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);
}
Upvotes: 1