gpt4 book ai didi

ios - Objective-C 中 NSString 的 pretty-print XML

转载 作者:可可西里 更新时间:2023-11-01 06:18:57 26 4
gpt4 key购买 nike

我在 Objective-C 的 NSString 对象中有一个 XML 文档。

XML 是从 Web 服务获取的,它没有任何格式、换行符或缩进。

谁能告诉我生成一个新的 NSString 对象的最简单方法,它具有很好的 XML 格式,每个元素都在一个新行上并具有适当的缩进等?

最佳答案

好吧,我自己解决了这个问题。

这使用围绕内置 /usr/include/libxml2 XML 库的 Google 的 GData XML 解析包装器,将包含未格式化 XML 的 NSString 转换为另一个 NSString 格式很好,带有缩进和换行符。

注意这是基于Xcode 5,目标是iOS 7;尽管它也可能适用于其他目标。


第 1 步。将 GData 类(源)复制到项目中

GData library 复制 2 个源文件,GDataXMLNode.hGDataXMLNode.m直接进入项目。


第二步.将libxml2添加到搜索路径

在 Project -> Build Settings -> Search Paths -> Header Search Paths 中,添加路径:/usr/include/libxml2

在 Project -> Build Settings -> Linking -> Other Linker Flags 中,添加标志:-lxml2


第 3 步。如果您的应用使用 ARC,请为 GData 类禁用 ARC

在 Targets -> Build Phases -> Compile Sources -> GDataXMLNode.m 中,添加 Compiler Flag: -fno-objc-arc

此时,请确保您的项目已构建。如果是,则 GData 配置正确。


第 4 步。编辑 GDataXMLNode.m 使其默认为 pretty-print XML

打开GDataXMLNode.m,找到方法- (NSString *)XMLString

更改:int format = 0;

到:int format = 1;


第 5 步. 在项目的任意位置添加以下方法

#import "GDataXMLNode.h"

+ (NSString *)prettyPrintXML:(NSString *)rawXML {
NSError *error;
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString:rawXML options:0 error:&error];
return error ? rawXML : doc.rootElement.XMLString;
}

就是这样,此方法会将原始 XML 字符串转换为格式良好的字符串。

关于ios - Objective-C 中 NSString 的 pretty-print XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19857045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com