【发布时间】:2012-04-11 15:36:35
【问题描述】:
我在 iOS 上使用 KissXML 来解析从 wcf REST Web 服务返回的 XML 数据(用 c# 编写)
我遇到的问题是 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 应用程序,因此我可以更改服务以尝试删除或更改命名空间(指向如何执行此操作的指针表示赞赏),或者我可以在获取数据后将其从字符串中删除到手机。
这两个选项都感觉有点像 hack - 还有更好的选项吗?
【问题讨论】:
标签: objective-c wcf rest kissxml