我编写了一个生成 xml 文件的程序;一切正常,除了空元素在 xml 文件中显示如下
<key id="0"><key/>
代替:
<key id="0"/>
这会在访问 xml 时导致错误。
PS我必须遵循存储在这里的DTD:/System/Library/DTDs/KeyboardLayout.dtd
这就是我创建 NSXMLElements 的方式:
NSXMLElement* space = [[NSXMLElement alloc] initWithName:@"key"];
[space addAttribute:[NSXMLNode attributeWithName:@"id" stringValue:[NSString stringWithFormat:@"0"]]];
所以我的问题是,如何修改上面的代码以生成 xml 节点,如第二个示例所示?
更新:
按照建议使用了 NSXMLCompactEmpyElement 选项,还使用了 NSXMLNodePrettyPrint 选项,否则所有节点都出现在一行中。
NSData *xmlData = [mapping XMLDataWithOptions:NSXMLNodeCompactEmptyElement | NSXMLNodePrettyPrint];
[xmlData writeToFile:path atomically:YES];