如果我有以下示例代码:
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>
不显示?感谢
P.S。甚至更简单的解释方式:
基本上,我想用另一个元素替换Element。所以来自
<e1>data1</e1>
我想要
<e2>data 2</e2>
取而代之。
答案 0 :(得分:0)
我可能误解了这个问题,但听起来你只是想让第一个元素具有第二个属性?尝试类似:
- (void) method {
NSArry* attrs = [c2 attributes];
[c1 setAttributes: attrs];
}
希望有所帮助。