【问题标题】:Webservice returns a SoapPrimitive containing escaped XMLWebservice 返回一个包含转义 XML 的 SoapPrimitive
【发布时间】:2012-02-28 22:05:33
【问题描述】:

我遇到了一个 WS,它返回一个包含原始 XML 作为字符串的 SoapPrimitive。正如你在这个示例响应中看到的,ResultXML 元素的内容是一个字符串,它本身就是某种转义的 XML

<?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>&lt;Part&gt;&lt;From&gt;&lt;Id&gt;254197...

通常我会做类似的事情

SoapObject soapObject = (SoapObject) response.getProperty("EndPoints");

但在这种情况下它不起作用(classcastexception)。这是因为(我认为)KSOAP 将结果视为字符串原语而不是复杂对象。所以我改为这样做

SoapPrimitive Partsp = (SoapPrimitive) response.getProperty("ResultXML");

这可行,我现在可以访问字符串中的 XML。但是接下来呢?

我更愿意将 XML 字符串转换为 SoapObject 以便我可以继续我的快乐方式。这可能吗?

这个 SOAP 响应在我看来相当糟糕,但我对此无能为力。

彼得

【问题讨论】:

    标签: android xml soap ksoap2


    【解决方案1】:

    您如何获得回复?您是否尝试过调试以查看响应的样子。这绝对是奇怪的,而不是应该的。

    【讨论】:

    • 这个 ws 是大约 5 个家庭中的 1 个。我正在使用的其他 3 个返回 SoapObjects,一切都很好。调用此 WS 时我没有做任何不同的事情。不同的是响应的内容。
    • 第二个想法,尝试将 XML 字符串转换为 SoapObject 可能是个坏主意。 XML 包含许多组成路线的坐标。我可能只想解析字符串。我在 Java 中没有这方面的经验,但从我读过的内容来看,XMLPullParser 可能是最简单和最快的
    • 当你调用 getResponse 时它自动是一个 SoapObject 树,你只需要解析它。如果你使用 XMLPullParser 你可能不想使用 ksoap 否则你会做两次..
    猜你喜欢
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    相关资源
    最近更新 更多