2010-12-07 4 views
0

申し訳ありません申し訳ありませんが、この単純なことを記述するために用語を使用していません。Cocoa NSXMLElement「クイックターミネーション」

私はthisの記事に続いてXML文書を作成しました。しかし、私はこの

<node attr1="abc" attr2="123" /> 

代わりに、私はこれを行うことができますどのように

<node attr1="abc" attr2="123"></node> 

のようにしたいですか?私はドキュメントでそれを見つけることはできませんし、私はそれをGoogleにする方法もkwドン。ありがとう!

+1

なぜ重要ですか?すべてのXMLパーサーは、これら2つのフォームを同じように扱う必要があります。短い形式の唯一の本当の利点は、人間がそれを入力するときです。 –

+0

もう1つの利点は、何百万ものノードを持つ数千のファイルがある場合には、いくつかのディスク容量を節約できることです。 –

答えて

2

NSXMLDocumentを作成するときに、タグタイプを設定する必要があります。あなたのケースでは、NSXMLNodeCompactEmptyElementオプションが必要です。このような何か:

NSXMLDocument* doc = [[NSXMLDocument alloc] initWithKind:kind options: NSXMLNodeCompactEmptyElement]; 

代わりに、あなたがこのコールを使用して、このようにフォーマットされたXMLを取得することができます:

NSString* str = [doc XMLStringWithOptions:(NSXMLNodeCompactEmptyElement | NSXMLNodePrettyPrint)]; 

は、より多くの情報のためthis linkを参照してください。