gpt4 book ai didi

objective-c - Cocoa - 在 NSXMLDocument 中写入 NSXMLElement

转载 作者:行者123 更新时间:2023-12-03 17:05:17 25 4
gpt4 key购买 nike

我正在创建一个 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 但再次无济于事。我相信解决方案非常简单,但我一生都无法在文档中找到答案。

感谢您的帮助。

最佳答案

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

然后,您可以使用 -parent 方法识别其父级,并使用 -index 方法识别其在父级子级中的索引。然后,假设父级是 NSXMLElement,您可以执行以下操作:

[[ipp_folder parent] insertChild:someNewNode atIndex:[ipp_folder index] + 1];

关于objective-c - Cocoa - 在 NSXMLDocument 中写入 NSXMLElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com