gpt4 book ai didi

iphone - NSXMLParser 如何将 NSMutableDictionary 传递给 NSMutableArray

转载 作者:行者123 更新时间:2023-11-28 23:09:48 25 4
gpt4 key购买 nike

我想将我正在创建的 nsdictionary 传递到 nsmutablearray,但我不确定在 nsxmlparser 委托(delegate)中何时或如何做。

这是我目前所做的

#pragma mark - Parsing lifecycle

- (void)startTheParsingProcess:(NSData *)parserData
{
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //parserData passed to NSXMLParser delegate which starts the parsing process

[parser setDelegate:self];
[parser parse]; // starts the event-driven parsing operation.
}


- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"item"]) {
valueDictionary = [[NSMutableDictionary alloc] init];
}
}

-(void)parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock
{
NSMutableString *dicString = [[NSMutableString alloc] initWithData:CDATABlock encoding:NSUTF8StringEncoding];
currentElement = dicString;
}



- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"title"]) {
titleString = currentElement;
[self.valueDictionary setObject:titleString forKey:@"title"];

NSLog(@"%@", [valueDictionary objectForKey:@"title"]);
NSLog(@" ");
currentElement = nil;
}
if ([elementName isEqualToString:@"description"])
{
descriptionString = currentElement;
[self.valueDictionary setObject:descriptionString forKey:@"description"];

NSLog(@"%@", [valueDictionary objectForKey:@"description"]);
NSLog(@" ");
currentElement = nil;
}

最佳答案

-parser:didEndElement:namespaceURI:qualifiedName: 中,监听 item 元素的结尾,然后将 valueDictionary 添加到一个可变的类上的数组实例。

if ([elementName isEqualToString:@"item"])
{
[self.mutableArrayOfDictionaries addObject:self.valueDictionary];
}

if ([elementName isEqualToString:@"title"]) {
titleString = currentElement;
[self.valueDictionary setObject:titleString forKey:@"title"];

NSLog(@"%@", [valueDictionary objectForKey:@"title"]);
NSLog(@" ");
currentElement = nil;
}

if ([elementName isEqualToString:@"description"])
{
descriptionString = currentElement;
[self.valueDictionary setObject:descriptionString forKey:@"description"];

NSLog(@"%@", [valueDictionary objectForKey:@"description"]);
NSLog(@" ");
currentElement = nil;
}

关于iphone - NSXMLParser 如何将 NSMutableDictionary 传递给 NSMutableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596824/

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