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"]]];

私の質問は、上記のコードをどのように変更して、2 番目の例に示すように xml ノードを生成するかです。

アップデート:

提案どおりに NSXMLCompactEmpyElement オプションを使用し、NSXMLNodePrettyPrint オプションも使用しました。そうしないと、すべてのノードが 1 行に表示されます。

NSData *xmlData = [mapping XMLDataWithOptions:NSXMLNodeCompactEmptyElement | NSXMLNodePrettyPrint];
[xmlData writeToFile:path atomically:YES];
4

1 に答える 1

1

具体的にはどのように書き出すのですか?いずれにせよ、探しているオプションは ですNSXMLNodeCompactEmptyElement。これは、たとえばXMLStringWithOptions:、ノードで有効なオプションです。

于 2012-08-01T06:44:58.380 に答える