我正在创建一个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];现在,如果我想在XML文件中的元素后面添加NSXMLElements,我该怎么做呢?
我尝试做了以下几件事:
NSXMLElement *s= [ipp_folder objectAtIndex:0];但是这会产生一个运行时错误。我还尝试使用NSXMLNode而不是将数据放入NSArray中,但同样无济于事。我相信解决方案很简单,但我终生无法在文档中找到答案。
谢谢你的帮助。
发布于 2012-04-25 19:42:55
-nodesForXPath:error:返回一个NSArray*,但是您的第二个代码片段已经对其应用了-objectAtIndex:。因此,ipp_folder不包含数组,它包含指向NSXMLNode的指针。修复其声明的类型。
然后,您可以使用-parent方法标识它的父级,并使用-index方法在父级的子级中标识它的索引。然后,假设父对象是一个NSXMLElement,您可以这样做:
[[ipp_folder parent] insertChild:someNewNode atIndex:[ipp_folder index] + 1];https://stackoverflow.com/questions/10313515
复制相似问题