2012-04-25 23 views
6

XMLファイルをプログラムで作成するときにXMLファイルを適切にフォーマットする方法はありますか?私は、単純なXMLファイルを作成するために、このコードを使用している場合Cocoa - 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]; 

をこれが実行されると、私は下の画像では、コメントセクション、ないあたりのように出力したいです実際のXML(コメントは付けられていません)。私はそのようにXMLファイルをフォーマットするにはどうすればよい

xml code

?ありがとう!

P.S.しかし、私は保存するためのNSDataに私が持っているNSXMLDocumentを変換したいの答えのための

おかげで... ...

私は警告その取得していますが、私は

NSData *newData = [[ads_user_printxml XMLDataWithOptions:NSXMLNodePrettyPrint]XMLData]; 

をしようとしています「NSData」は「-XMLData」に応答しない可能性があります。以前はXMLDataWithOptionsを追加していましたが、これはうまくいきました。「XMLStringWithOptions」メソッドを試しました。生成されました。

デア?どうもありがとう! NSXMLDocumentNSXMLElementNSXMLNodeのサブクラスであるため、あなたはまた、これらのクラスでこれを行うことができます

NSString* string = [xmlNode XMLStringWithOptions:NSXMLNodePrettyPrint]; 

注:出力きれいにフォーマットXML文字列を使用して、次のことができます

答えて

11

あなたの代わりに文字列のNSDataをしたい場合は、単に実行します。答えを

NSData* xmlData = [xmlNode XMLDataWithOptions:NSXMLNodePrettyPrint]; 
+0

おかげで..私は元の質問を少し修正している..あなたはとても親切私に与えるようになる場合さらにNSDataに実際にどのように保存できるかについてのヒントがあれば、私は非常に感謝しています。私は元の質問でそれを言及すべきだった。ありがとう。 – Kevin

+2

私は自分の答えを更新しました。結果に対して 'XMLData'を呼び出すことを除いて、質問に対するあなたの編集は正しいです。 'XMLDataWithOptions:'の出力は 'NSData'オブジェクトではなく' NSData'オブジェクトであるため、これはうまくいかず、不要です。 –

+0

素晴らしい作品です、ありがとうRob! – Kevin

関連する問題