2012-02-28 59 views
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>&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響應似乎對我來說太麻煩了,但對此我沒有太多的辦法。

彼得

回答

0

你是如何得到你的迴應?您是否嘗試過調試以查看響應的樣子。這絕對是奇怪的,而不是它應該如何。

+0

這個ws是大約5個家庭中的一個。其他3個我使用return SoapObjects,一切都很好。調用這個WS時,我不做任何不同的事情。這是不同的答覆內容。 – Rhubarb65 2012-02-29 07:31:53

+0

在第二個想法中,試圖將XML字符串轉換爲SoapObject可能是一個糟糕的主意。 XML包含很多構成路線的座標。我可能只是想解析字符串。在Java中我沒有這方面的經驗,但從我讀過的XMLPullParser可能是最簡單和最快的 – Rhubarb65 2012-02-29 07:34:51

+0

它調用getResponse時它自動地是一個SoapObject樹,而您只需要解析它。如果你使用XMLPullParser,你可能不想使用kso​​ap,否則你會這樣做兩次。 – 2012-02-29 19:15:35