Search code examples
cocoansxml

writing CDATA block to NSXMLDocument file


How can one write CDATA block in XML file and save it to a file in cocoa.


Solution

  • To create a node containing CDATA encoded text, use method initWithKind:options: on NSXMLNode.

    NSXMLNode *cdataNode = [[NSXMLNode alloc] initWithKind:NSXMLTextKind  options:NSXMLNodeIsCDATA];
    [cdataNode setStringValue:@"<some text>"];
    

    And to write xml data to a file:

    NSData *xmlData = [xmlDoc XMLDataWithOptions:NSXMLNodePrettyPrint];
    [xmlData writeToFile:fileName atomically:YES];