NSXMLParser获取属性的名称空间前缀

时间:2012-06-07 23:59:26

标签: 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"属性,并且命名空间前缀可能会有所不同,具体取决于我无法控制的几种力量。我需要弄清楚如何以编程方式从命名空间URI中获取前缀。

我已经实施了parser:didStartMappingPrefix:toURI:parser:didEndMappingPrefix:委托方法,虽然我已将setShouldProcessNamespaces设置为 YES ,但它们不会被调用。

我是NSXMLParser的新手,但不是iOS和XML。任何关于我应该怎么做的方向都将不胜感激。

1 个答案:

答案 0 :(得分:3)

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

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