0

我编写了一个生成 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];
4

1 回答 1

1

你具体是怎么写出来的?无论如何,您正在寻找的选项是NSXMLNodeCompactEmptyElement,例如,它是XMLStringWithOptions:节点上的有效选项。

于 2012-08-01T06:44:58.380 回答