0

次のコード例があるとします。

NSXMLDocument* doc = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL fileURLWithPath:@"file2.xml"] options:0 error:NULL];
NSXMLElement* root  = [doc rootElement];
NSArray* objectElements = [root nodesForXPath:@"//object" error:nil];

NSLog (@"doc - %@", doc);

NSXMLElement *c1 = [objectElements objectAtIndex:0];
NSLog (@"c1 --> %@",[c1 stringValue]);

//creating new element
NSXMLElement *c2 = [NSXMLElement elementWithName:@"value" stringValue:@"object new node"];
[c1 replaceChildAtIndex:0 withNode:c2]; 

NSLog (@"New doc - %@", doc);

XML 要素を取得し、その値を別の (c2) に変更しようとしています。問題は、新しいノードを置き換えると、要素名も XML ドキュメントに挿入されることです。

だから、もし私が持っているなら

<element>old value</element>, 

私は今得ています:

<element><newElement>new value</newElement></element>

そのようにコードをプログラムするにはどうすればよいですか

<newElement></newElement> 

表示されませんか?ありがとう

PSさらに簡単な説明方法:

基本的に、要素を別の要素に置き換えたいです。だからから

<e1>data1</e1>

したい

<e2>data 2</e2>

その代わりに。

4

1 に答える 1

0

私は質問を誤解しているかもしれませんが、最初の要素に2番目の要素の属性を持たせようとしているように思えますか? 次のようなものを試してください:

- (void) method { 
    NSArry* attrs = [c2 attributes];
    [c1 setAttributes: attrs];
}

それが役立つことを願っています。

于 2012-05-29T05:51:00.653 に答える