¿Existe alguna manera de formatear un archivo XML de la forma adecuada al crearlo mediante programación?Cacao - Cómo formatear un archivo XML
Por ejemplo, si utilizo este código para crear un simple archivo 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];
Cuando esto se ejecuta, me gustaría salida sea conforme a la sección comentada en la imagen de abajo, no el XML real (que no se comenta).
¿Cómo puedo formatear el archivo XML de esa manera? ¡Gracias!
P.S.
Gracias por la respuesta .. Sin embargo, me gustaría convertir el NSXMLDocument que tengo en NSData para guardar ...
Estoy tratando
NSData *newData = [[ads_user_printxml XMLDataWithOptions:NSXMLNodePrettyPrint]XMLData];
sin embargo yo estoy haciendo una advertencia de que "'NSData' puede no responder a '-XMLData', donde antes de agregar XMLDataWithOptions funcionaba bien. También probé el método 'XMLStringWithOptions' (como dijiste, pero pensé que los datos eran más apropiados), pero la misma advertencia fue generado.
Cualquiera i deas? ¡Muchas gracias!
Gracias por la respuesta .. He modificado la pregunta original un poco .. Si fuera tan amable de darme una más pistas sobre cómo puedo guardar realmente en NSData, lo agradecería enormemente. Debería haber mencionado eso en la pregunta original. Gracias. – Kevin
He actualizado mi respuesta. La edición de su pregunta es correcta, excepto que está llamando 'XMLData' al resultado. Eso no funcionará y es innecesario, porque el resultado de 'XMLDataWithOptions:' ya es un objeto 'NSData', no un objeto' NSXMLNode'. –
Funciona muy bien, muchas gracias Rob! – Kevin