我有一个如下所示的 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/