Я получаю SOAP-ответ, который является немного сложным. Ответ таков:Как разобрать сложный ответ SOAP в KSOAP2
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getDetailResponse xmlns="http://saiserviceapp.com/">
<getDetailResult>
<UserDetail>
<UserID>int</UserID>
<VehicleID>int</VehicleID>
<UserName>string</UserName>
<VehicleNo>string</VehicleNo>
<ModelID>int</ModelID>
<VariantID>int</VariantID>
<Color>string</Color>
<DOP>dateTime</DOP>
<InsCompany>string</InsCompany>
<InsExpire>dateTime</InsExpire>
<ContactNo>long</ContactNo>
<DInsExpire>dateTime</DInsExpire>
</UserDetail>
<UserDetail>
<UserID>int</UserID>
<VehicleID>int</VehicleID>
<UserName>string</UserName>
<VehicleNo>string</VehicleNo>
<ModelID>int</ModelID>
<VariantID>int</VariantID>
<Color>string</Color>
<DOP>dateTime</DOP>
<InsCompany>string</InsCompany>
<InsExpire>dateTime</InsExpire>
<ContactNo>long</ContactNo>
<DInsExpire>dateTime</DInsExpire>
</UserDetail>
</getDetailResult>
</getDetailResponse>
</soap:Body>
</soap:Envelope>
Теперь, чтобы разобрать его я написал этот код:
resultRequestSOAP = (SoapObject)envelope.bodyIn;
SoapObject root = (SoapObject) resultRequestSOAP.getProperty(mStrProperty);
SoapObject childObj[] = new SoapObject[root.getPropertyCount()];
for(int i = 0; i < root.getPropertyCount(); i++)
{
childObj[i] = (SoapObject) root.getProperty("UserDetail");
vector.addElement(childObj[i].getProperty(3));
}
Здесь я получаю значение корня после преобразования в строку, как показано ниже:
anyType
{
UserDetail=
anyType{
UserID=10884;
VehicleID=507;
UserName=ffasdd;
VehicleNo=GJGJGJG;
ModelID=0;
VariantID=0;
DOP=0001-01-01T00:00:00;
InsExpire=null;
ContactNo=8888555522;
DInsExpire=0001-01-01T00:00:00;
};
UserDetail=
anyType{
UserID=10884;
VehicleID=508;
UserName=ffasdd;
VehicleNo=HGHGGHJ;
ModelID=0;
VariantID=0;
DOP=0001-01-01T00:00:00;
InsExpire=null;
ContactNo=8888555522;
DInsExpire=0001-01-01T00:00:00;
};
}
Теперь из этого сложного ответа я хочу номера автомобилей и хочу их хранить в векторе. В настоящее время с моим кодом выше, я получаю первый набор ответов несколько раз. Значит, такое же транспортное средство не добавляется несколько раз в вектор.
Как решить эту проблему.
Тогда что я должен изменить в приведенном выше коде. Так что я получу автомобиль нет. –
Вы можете попробовать 'childObj [i] = (SoapObject) ((SoapObject) root.getProperty (i)). GetProperty (« UserDetail »);' – mromer
http://stackoverflow.com/questions/41676538/how-to- use-dynamic-nav-service-anytype-response-in-android-side-with-ntlmtran можете ли вы предоставить свое ** ценное решение ** для этого. –