【发布时间】:2017-12-11 16:40:36
【问题描述】:
我正在尝试使用 Ksoap2 从一个肥皂网络服务获取响应,但我得到的只是一个包含 xml 文件的字符串,有人知道我如何解析每个属性吗?
这是我正在使用的代码:
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope soapEnvelope = new write(SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(Request);
transport = new HttpTransportSE(URL);
transport.debug=true;
transport.call(SOAP_ACTION, soapEnvelope);
response = (SoapObject) soapEnvelope.bodyIn;
这是我得到的回应:
Response{
Result= <raiz>
<result>
<exitoso>val</exitoso>
<message>message</message>
</result>
<clients>
<client>
<id>id</id>
<name>name</name>
<lastname>lastname</lastname>
</client>
</clients>
</raiz>;
}
有人知道我怎样才能得到实际数据吗?比如姓名、身份证和姓氏?
【问题讨论】:
-
遍历你的响应,得到属性的属性值,你得到了什么? SOAP Object > getProperty
-
@veggirice 如果我尝试浏览响应,我只会得到“响应”属性,即
<raiz> <result> <exitoso>val</exitoso> <message>message</message> </result> <clients> <client> <id>id</id> <name>name</name> <lastname>lastname</lastname> </client> </clients> </raiz>而且我的属性计数仅返回 1 -
几个问题: 1. 您的响应变量的类型是什么?是肥皂对象吗? 2.如果是这样,那么当你做response.getProperty("name").toString()时,你得到了什么?
-
@veggirice 我 95% 确定它是一个 SoapObject,如果我尝试使用
response.getProperty("name").toString,我会收到下一个错误illegal property: name -
@veggirice 即使我可以制作一个返回 xml 数据的 response.getProperty("Result") :
<raiz> <result> <exitoso>val</exitoso> <message>message</message> </result> <clients> <client> <id>id</id> <name>name</name> <lastname>lastname</lastname> </client> </clients>
标签: xml web-services android-studio soap android-ksoap2