ios - NSXMLParser,如何知道 <?xml> 标签中写入的编码和版本(如果存在)

标签 ios objective-c xml xml-parsing nsxmlparser

正如标题所说,当我使用 NSXMLParser 解析器解析文件时,有没有办法知道标签是否存在?如果是,我如何获取其属性的值(如果存在)?

我尝试了 NSXMLParserDelegate 的所有方法,但都没有解决我的问题...... 我应该手动解析该标签吗?

最佳答案

理论上,您应该收到一个 -foundProcessingInstructionWithTarget:data: 委托(delegate)回调,但实际上并没有发生(至少在 iOS 上,我没有检查 OS X)。

如果您想明确检查,则需要自己解析文件的开头,查找 XML 指令。使用 NSScanner 进行简短的读取和扫描可能就足够了(通过使用 NSScanner 而不是简单的字符串测试,您将获得更好的空白处理)。

显然,这不是您最初寻找的答案,但由于 XML 无论如何都会有一个声明的字符集,您可能只想用 utf-8 写出来> 声明并假设任何正在读取修改后的文件的东西(因为如果相同则不需要重写)也可以读取处理指令并正确处理字符集。

关于ios - NSXMLParser,如何知道 <?xml> 标签中写入的编码和版本(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15473559/

相关文章:

IOS - 从 IOS 应用程序中的另一个类写入 UITextField

php - 如何将 XML 数据放入数组/对象中?

javax.xml.bind.UnmarshalException : XML document structures must start and end within the same entity

ios - 尝试 Apple 的 Sample AVCAM 发现错误

ios - TestFlight 和 iOS 尝试发送测试版本时出现奇怪错误

iphone - 如何在应用每启动三次后显示弹出窗口?

objective-c - Objective-C : Detecting Leakages via Instruments in Xcode

objective-c - 如何用 UIGestureRecognizer 替换 TouchesBegan

java - XML 生成与 XML 数据库

ios - 快速布洛克斯。从头开始指南