ios - NSXMLParser 获取属性的命名空间前缀

标签 ios xml nsxmlparser xml-namespaces

我有一个如下所示的 XML 结构:

<Succeeded p1:type="Edm.Boolean" xmlns:p1="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices">false</Succeeded>

因为我需要能够获取 p1:type="Edm.Boolean" 属性,并且命名空间前缀可能会有所不同,具体取决于我无法控制的多种力量。我需要弄清楚如何以编程方式从 namespace URI 获取前缀。

我已经实现了 parser:didStartMappingPrefix:toURI:parser:didEndMappingPrefix: 委托(delegate)方法,尽管我已将 setShouldProcessNamespaces 设置为 <强>是的,他们不会被叫到。

我是 NSXMLParser 的新手,但对 iOS 和 XML 都不是。任何关于我应该如何解决这个问题的指示将不胜感激。

最佳答案

除了实现委托(delegate)方法并调用setShouldProcessNamespaces:YES之外,还应该调用setShouldReportNamespacePrefixes:YES

此更改将导致调用两个“前缀”协议(protocol)方法。您可以在那里捕获命名空间 URI 和前缀并根据需要使用它们。

关于ios - NSXMLParser 获取属性的命名空间前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941474/

相关文章:

ios - 午睡 JSON 响应

XML 转换自动化

android - Web 服务响应不是 XML

xml - XSLT 1.0 获取不同值失败

objective-c - IOS 中的 XML 解析在标签中显示 NULL 值?

ios - 如何通过从服务器获取数据来设置文本字段值

ios - 将 UIImage 的 "Tick Marks"添加到 UISlider

ios - NSDateFormatter 没有显示完整的月份名称,只有一位数字

iphone - 滚动时如何使第一个和最后一个 UITableView 单元格留在屏幕上?

IOS 如何使用 RESTFUL API 从 Web 服务中检索数据