1

我在 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 应用程序,因此我可以更改服务以尝试删除或更改命名空间(指向如何执行此操作的指针表示赞赏),或者我可以在获取数据后将其从字符串中删除到电话。

这两个选项都感觉有点像黑客 - 有更好的选择吗?

4

1 回答 1

0

我建议将 defaultOutgoingResponseFormat 更改为 Json,并处理它而不是 xml。

为什么?在这里阅读:http: //www.json.org/xml.html

而且它会解决你的问题:)

于 2012-04-11T18:00:23.627 回答