正如标题所说,当我使用 NSXMLParser 解析器解析文件时,有没有办法知道标签是否存在?如果是,我如何获取其属性的值(如果存在)?
我尝试了 NSXMLParserDelegate 的所有方法,但都没有解决我的问题...... 我应该手动解析该标签吗?
最佳答案
理论上,您应该收到一个 -foundProcessingInstructionWithTarget:data:
委托(delegate)回调,但实际上并没有发生(至少在 iOS 上,我没有检查 OS X)。
如果您想明确检查,则需要自己解析文件的开头,查找 XML 指令。使用 NSScanner
进行简短的读取和扫描可能就足够了(通过使用 NSScanner
而不是简单的字符串测试,您将获得更好的空白处理)。
显然,这不是您最初寻找的答案,但由于 XML 无论如何都会有一个声明的字符集,您可能只想用 utf-8
写出来> 声明并假设任何正在读取修改后的文件的东西(因为如果相同则不需要重写)也可以读取处理指令并正确处理字符集。
关于ios - NSXMLParser,如何知道 <?xml> 标签中写入的编码和版本(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473559/