Kev*_*vin 6 cocoa objective-c nsxml
有没有办法在编程时以正确的方式格式化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];
Run Code Online (Sandbox Code Playgroud)
当这个运行时,我想按照下图中的注释部分输出,而不是实际的XML(没有注释).

我如何以这种方式格式化XML文件?谢谢!
PS
谢谢你的答案.但是,我想将我拥有的NSXMLDocument转换为NSData以便保存...
我在尝试
NSData *newData = [[ads_user_printxml XMLDataWithOptions:NSXMLNodePrettyPrint]XMLData];
Run Code Online (Sandbox Code Playgroud)
但是我收到一条警告,"'NSData'可能无法响应'-XMLData',在我添加XMLDataWithOptions之前,它工作得很好.我也尝试了'XMLStringWithOptions'方法(如你所说 - 但是认为数据更多适当的),但产生了相同的警告.
有任何想法吗?非常感谢!
Rob*_*ger 11
您可以使用以下命令输出格式良好的XML字符串:
NSString* string = [xmlNode XMLStringWithOptions:NSXMLNodePrettyPrint];
Run Code Online (Sandbox Code Playgroud)
需要注意的是,因为NSXMLDocument和NSXMLElement是的子类NSXMLNode,你可以用这些类也做到这一点.
如果你想要NSData而不是一个字符串,只需:
NSData* xmlData = [xmlNode XMLDataWithOptions:NSXMLNodePrettyPrint];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1931 次 |
| 最近记录: |