首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocoa -用NSXMLDocument编写NSXMLElement

Cocoa -用NSXMLDocument编写NSXMLElement
EN

Stack Overflow用户
提问于 2012-04-25 18:08:09
回答 1查看 835关注 0票数 1

我正在创建一个NSXMLDocument,并从中获得一个在常量USER_PRINTXML_URL中定义的文件,如下所示:

代码语言:javascript
复制
NSXMLDocument *ads_user_printxml = [[NSXMLDocument alloc] initWithContentsOfURL: [NSURL URLWithString:USER_PRINTXML_URL]    options:(NSXMLNodePreserveWhitespace|NSXMLNodePreserveCDATA)                                          error:&ads_err];

然后我使用XPath在XML文件中找到所需的位置,如下所示:

代码语言:javascript
复制
NSArray* ipp_folder = [[ads_user_printxml nodesForXPath:@".//root/printing/IPP"error:&ads_err] objectAtIndex:0];

现在,如果我想在XML文件中的元素后面添加NSXMLElements,我该怎么做呢?

我尝试做了以下几件事:

代码语言:javascript
复制
NSXMLElement *s= [ipp_folder objectAtIndex:0];

但是这会产生一个运行时错误。我还尝试使用NSXMLNode而不是将数据放入NSArray中,但同样无济于事。我相信解决方案很简单,但我终生无法在文档中找到答案。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-25 19:42:55

-nodesForXPath:error:返回一个NSArray*,但是您的第二个代码片段已经对其应用了-objectAtIndex:。因此,ipp_folder不包含数组,它包含指向NSXMLNode的指针。修复其声明的类型。

然后,您可以使用-parent方法标识它的父级,并使用-index方法在父级的子级中标识它的索引。然后,假设父对象是一个NSXMLElement,您可以这样做:

代码语言:javascript
复制
[[ipp_folder parent] insertChild:someNewNode atIndex:[ipp_folder index] + 1];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10313515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档