gpt4 book ai didi

ios - 如何获取 XML 元素并存储它? objective-c

转载 作者:行者123 更新时间:2023-11-29 13:08:51 25 4
gpt4 key购买 nike

我正在尝试从网站获取 token 。身份验证成功后,将显示一个 XML 文档。

我创建了如下所示的连接:

NSString *strURLQueryString = [NSString stringWithFormat:@"%@?username=%@&password=%@", kURL_LOGIN, nameString, passwordString];
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:strURLQueryString]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];

为了显示输出,我使用了这个:

unsigned char byteBuffer[[receivedData length]];
[receivedData getBytes:byteBuffer];
NSLog(@"Output: %s", (char *)byteBuffer);

所以返回文档的部分输出如下图:

    <status>0</status><reason>User fetched.</reason><token>9cb7396dccabe68c067521db219afb83</token>

我已经阅读了很多 XML 解析实现,但我无法实现它,因为它不能满足我的需求,而且我无法理解其解释的复杂性。

如果有人能给我一个好的建议,我将不胜感激。

最佳答案

- (XMLParserViewController *) initXMLParser {


appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];

return self;
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
{

if([elementName isEqualToString:@"Books"]) {
appDelegate.books = [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"Book"])
{

aBook = [[Books alloc] init];

}

NSLog(@"Processing Element: %@", elementName);
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {

if(!currentElementValue)
currentElementValue = [[NSMutableString alloc] initWithString:string];
else
[currentElementValue appendString:string];

NSLog(@"Processing Value: %@", currentElementValue);

}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

if([elementName isEqualToString:@"Books"])
return;

if([elementName isEqualToString:@"Book"])
{
[appDelegate.books addObject:aBook];
aBook = nil;
}
else if([elementName isEqualToString:@"name"])
{
aBook.name=currentElementValue;
}
else if([elementName isEqualToString:@"address"])
{
aBook.address=currentElementValue;
}
else if([elementName isEqualToString:@"country"])
{
aBook.country=currentElementValue;
}

currentElementValue = nil;


NSLog(@"%@",aBook.name);
NSLog(@"%@",aBook.address);
NSLog(@"%@",aBook.country);
}

试试这个,我希望这能奏效....

关于ios - 如何获取 XML 元素并存储它? objective-c ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17877304/

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