Какао - Написание NSXMLElement В NSXMLDocument
Я создаю NSXMLDocument, из которого я получаю файл, определенный в константе USER_PRINTXML_URL, следующим образом:
NSXMLDocument *ads_user_printxml = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL URLWithString:USER_PRINTXML_URL] options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA) error:&ads_err];
Затем я использую XPath, чтобы добраться до нужного места в файле XML следующим образом:
NSArray* ipp_folder = [[ads_user_printxml nodesForXPath:@".//root/printing/IPP"error:&ads_err] objectAtIndex:0];
Теперь, если я хочу добавить NSXMLElements после элемента в файле XML, как мне это сделать?
Я пытался сделать следующее:
NSXMLElement *s= [ipp_folder objectAtIndex:0];
Но это вызывает ошибку во время выполнения. Я также попытался использовать NSXMLNode вместо помещения данных в NSArray, но снова безрезультатно. Я считаю, что решение довольно простое, но я не могу найти ответ в документах.
Спасибо за любую помощь.
1 ответ
-nodesForXPath:error:
возвращает NSArray*
, но ваш второй фрагмент кода уже применен -objectAtIndex:
к этому. Так, ipp_folder
не содержит массив, он содержит указатель на NSXMLNode
, Исправьте объявленный тип.
Затем вы можете определить его родителя, используя -parent
метод и его индекс в дочерних элементах родителя, используя -index
метод. Затем, предполагая, что родитель NSXMLElement
, ты можешь сделать:
[[ipp_folder parent] insertChild:someNewNode atIndex:[ipp_folder index] + 1];