1
我已经运行了一个WS,它返回一个包含原始XML的SoapPrimitive作为字符串。正如你在这个例子中响应看到,ResultXML元素的内容是一个字符串,它本身就是某种逃脱XML的Webservice返回包含转义XML的SoapPrimitive
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetJourneyPathResponse xmlns="http://www.etis.fskab.se/v1.0/ETISws"><GetJourneyPathResult><Code>0</Code><Message /><ResultXML><Part><From><Id>254197...
通常我会做这样的事情
SoapObject soapObject = (SoapObject) response.getProperty("EndPoints");
但在这种情况下,它不工作(classcastexception)。这是因为(我认为)KSOAP将结果视为字符串原语而不是复杂对象。所以我做
SoapPrimitive Partsp = (SoapPrimitive) response.getProperty("ResultXML");
这个工作,我现在可以访问字符串中的XML。但接下来呢?
我宁愿将XML字符串转换为SoapObject,以便我可以继续我的快乐方式。那可能吗?
这个SOAP响应似乎对我来说太麻烦了,但对此我没有太多的办法。
彼得
这个ws是大约5个家庭中的一个。其他3个我使用return SoapObjects,一切都很好。调用这个WS时,我不做任何不同的事情。这是不同的答复内容。 – Rhubarb65 2012-02-29 07:31:53
在第二个想法中,试图将XML字符串转换为SoapObject可能是一个糟糕的主意。 XML包含很多构成路线的坐标。我可能只是想解析字符串。在Java中我没有这方面的经验,但从我读过的XMLPullParser可能是最简单和最快的 – Rhubarb65 2012-02-29 07:34:51
它调用getResponse时它自动地是一个SoapObject树,而您只需要解析它。如果你使用XMLPullParser,你可能不想使用ksoap,否则你会这样做两次。 – 2012-02-29 19:15:35