iOS - XML 到 NSString 的转换

标签 ios xml xcode nsxmlparser nsstringencoding

我正在使用 NSXMLParser 将 XML 解析到我的应用程序,但编码类型有问题。例如,这是进来的一个提要。它看起来类似于这个”

\U2026Some random text from the xml feed\U2026

我目前使用的编码类型:

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];

我想使用哪种编码类型将\U2026 转换为椭圆 (...) ??

最佳答案

这里的答案是你完蛋了。他们对 XML 使用了非标准编码,但如果他们真的想要文字 \U2026 怎么办?假设您添加了一个解码器来处理所有 \UXXXX\uXXXX 编码。当另一个提要希望数据是文字 \U2026 时会发生什么?

您是第一选择,最好的办法是修复此 Feed。如果他们需要对数据进行编码,则需要使用适当的 HTML 实体或数字引用。

作为后备方案,我会将解码器与 XML 解析器隔离开来。不要仅仅因为得到不符合规范的数据就创建不符合规范的 XML 解析器。有一个只会在有问题的提要上运行的后处理器。


如果你一定要有解码器,那就有更多的坏消息了。没有内置解码器,你需要在网上找一个类别或者自己写一个。


经过一番摸索,我认为Using Objective C/Cocoa to unescape unicode characters, ie \u1234可能适合你。

关于iOS - XML 到 NSString 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023248/

相关文章:

iphone - 如何以编程方式查看相册中的照片?

iphone - Objective-C 预处理器指令

ios - 透明的 iOS 导航栏

ios - 没有 PHAsset 是否可以将照片存储在 iPhone 上?

ios - 从 Storyboard以编程方式设置 UIView 的大小

iphone - 使用 NSOperationQueue 在后台线程中执行 drawRect 和 sizeWithFont 会导致应用程序崩溃

Android:使用 KSOAP 解析 XML

swift - UIAlert 不再打开,Xcode 告诉我调试 NSLayoutConstraintToNilAnchor

xml - 如何使用 go-libxml2 更新特定 XML 元素值

xml - 使用 UIMA 从 XML 文件中提取文本