2010-09-16 37 views
1

我有這個XML文件,我已經導入Cocoa並想修改一個值。我怎麼做 ?似乎沒有任何好的例子。 我將這個文件導入Cocoa(正常工作),現在想在將它傳輸到服務器之前更改imp的值。我會如何去做這件事?謝謝解析Cocoa中的XML

<?xml version='1.0'?> 
    <Root xmlns='http://www.abc.uk' version='1.0' name='full'> 
    <child1 version='2.0'> 
    <value1> 
     <user>abc</user> 
     <pass>xyz</pass> 
    </value1> 
    </child1> 
    <child2> 
    <imp>12345</imp> 
    </child2> 
</Root> 

我有這個解決方案,但它不工作,因爲我希望它。

  xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:furl  
      options:NSXMLDocumentTidyXML error:&err]; 

      NSArray *children = [[xmlDoc rootElement] children]; 
    int i, count = [children count]; 

    //loop through each child 
    for (i=0; i < count; i++) 
     { 
     NSXMLElement *child = [children objectAtIndex:i]; 
      NSLog(@"child Name is %@", child.name); 

      if ([child.name isEqual:@"child2"]) 
       { 
    [[child attributeForName:@"imp"] setStringValue:@"4567"]; 
    break; 

       }  
     } 
+0

的NSLog(@ 「值是%@」,[兒童childAtIndex:0]); 讓我知道imp參數的值。仍在尋找一種方式來訪問並改變它。 – ZionKing 2010-09-16 23:23:20

回答

3

此做的:

NSXMLNode *new = [NSXMLNode elementWithName:@"imp" stringValue:@"12345"]; 
[child replaceChildAtIndex:0 withNode:new];