gpt4 book ai didi

objective-c - Cocoa - 如何格式化 XML 文件

转载 作者:太空狗 更新时间:2023-10-30 03:41:20 24 4
gpt4 key购买 nike

有没有一种方法可以在以编程方式创建 XML 文件时以正确的方式格式化它?

例如,如果我使用这段代码创建一个简单的 XML 文件:

NSXMLElement *fallback_driver = [[NSXMLElement alloc] initWithName:@"fallback-driver"];

NSXMLElement *folder = [[NSXMLElement alloc] initWithName:@"folder"];
[folder setStringValue:[ads_make objectValueOfSelectedItem]];
NSXMLElement *filename =[[NSXMLElement alloc] initWithName:@"filename"];
[filename setStringValue:ads_driver_name_selected];

[fallback_driver addChild:folder];
[fallback_driver addChild:filename];

NSXMLElement* rootNode = [ads_user_printxml rootElement];
[rootNode addChild:fallback_driver];

运行时,我希望按照下图中的注释部分输出,而不是实际的 XML(未注释)。

xml code

我该如何格式化 XML 文件?谢谢!

附言

感谢您的回答。但是,我想将我拥有的 NSXMLDocument 转换为 NSData 以保存...

我在努力

NSData *newData = [[ads_user_printxml XMLDataWithOptions:NSXMLNodePrettyPrint]XMLData];

但是我收到一条警告“'NSData' 可能不会响应'-XMLData',在我添加 XMLDataWithOptions 之前它工作正常。我也尝试了方法'XMLStringWithOptions'(正如你所说 - 但认为数据更合适),但生成了相同的警告。

有什么想法吗?非常感谢!

最佳答案

您可以使用以下命令输出格式良好的 XML 字符串:

NSString* string = [xmlNode XMLStringWithOptions:NSXMLNodePrettyPrint];

请注意,因为 NSXMLDocumentNSXMLElementNSXMLNode 的子类,您也可以对这些类执行此操作。

如果您想要 NSData 而不是字符串,只需执行以下操作:

NSData* xmlData = [xmlNode XMLDataWithOptions:NSXMLNodePrettyPrint];

关于objective-c - Cocoa - 如何格式化 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10309644/

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