gpt4 book ai didi

objective-c - 使用用于 Objective-C 的 GDataXMLNode 获取外部 XML?

转载 作者:行者123 更新时间:2023-11-28 20:45:36 24 4
gpt4 key购买 nike

我正在研究一种在我的 PHP api 和 iOS 应用程序之间进行通信的方法。这就是为什么我编写了一个函数来获取(我的 api 的)外部 XML 提要并解析它的原因。

但是在这样做的过程中,我发现了一个问题。我写的下一个代码将不起作用:

-(void)getXML:(NSURL *)url {
NSURLRequest *theRequest = [NSURLRequest requestWithURL:url];
NSURLResponse *resp = nil;
NSError *err = nil;
NSData *response = [NSURLConnection sendSynchronousRequest: theRequest returningResponse: &resp error: &err];
xmlDocument = [[GDataXMLDocument alloc]initWithData:response options:0 error:&error];
NSArray *data = [[xmlDocument rootElement]elementsForName:@"api"];
data_from_xml = [[NSMutableArray alloc]init];
for(GDataXMLElement *e in data)
{
[data_from_xml addObject:e];
}

NSLog(@"xmlDocument:%@]\n\nData:%@\n\nData_from_xml:%@\n\nURL:%@", xmlDocument,data,data_from_xml, url);


}

日志返回:

xmlDocument:GDataXMLDocument 0x5a1afb0

Data:(null)

Data_from_xml:(
)

URL:http://sr.site-project.nl/api/?t=store.search.keyword

因此,GDataXMLDocument 似乎具有 XML。但是我不能用 elementsForName 参数加载它?

有人知道问题出在哪里吗?

XML:

<?xml version="1.0"?> 
<api><type>core.error</type><errorMessage>API store.search.keyword doesn't exists</errorMessage></api>

最佳答案

api 节点是您的根元素:

NSArray *data = [[xmlDocument rootElement]elementsForName:@"api"];

尝试:

NSError *error = nil;
NSArray *data = [xmlDocument nodesForXPath:@"//api" error:&error];

我个人更喜欢使用 nodesForXPath 方法来检索元素。

关于objective-c - 使用用于 Objective-C 的 GDataXMLNode 获取外部 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551193/

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