2012-04-11 20 views
1

我使用的是iOS上KissXML解析從WCF REST Web服務返回數據的XML(用C#)使用KissXML處理WCF REST Web服務 - 我應該如何處理命名空間問題

我有麻煩的是KissXML不喜歡我從Web服務獲得的XML數據中的名稱空間。

在一個簡單的例子XML數據,我得到這個樣子的:

<ArrayOfItem xmlns="http://schemas.datacontract.org/2004/07/DataUpdateService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Item>Test</Item></ArrayOfItem> 

KissXML似乎無法使用XPath解析這個XML

resultNodes = [xmlDoc nodesForXPath:@"//Item" error:&error]; 

如果我從刪除默認命名空間XML字符串 - 然後它工作正常。

<ArrayOfItem xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Item>Test</Item></ArrayOfItem> 

所以這個XML是罰款,並使用Objective-C的上面我在陣列獲得1個對象(如預期)。

所以問題是:我應該怎麼做呢?我控制了服務和iOS應用程序,所以我可以更改服務以嘗試刪除或更改名稱空間(指示如何執行此操作的讚賞),或者一旦獲取數據,我就可以將其從我的字符串中剔除到電話。

這兩個選項都覺得有點像黑客 - 有更好的選擇嗎?

回答

0

我會建議將defaultOutgoingResponseFormat更改爲Json, 並處理它而不是xml。

爲什麼?讀這裏: http://www.json.org/xml.html

而且它也會解決你的問題:)