首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSXMLParser问题

NSXMLParser问题
EN

Stack Overflow用户
提问于 2011-01-13 22:27:25
回答 1查看 278关注 0票数 2

我有一个正在解析的xml文件。

代码语言:javascript
复制
NSURL *url = [NSURL URLWithString:@"url.xml"];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
self.downloadData = [[NSMutableData alloc] initWithLength:0];
self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

我有所有的连接工作,我以为我有解析工作,但我有问题,不知道我做错了什么。

我的didStartElement:

代码语言:javascript
复制
-(void) parser:(NSXMLParser *) parser  didStartElement:(NSString *) elementName  namespaceURI:(NSString *) namespaceURI  qualifiedName:(NSString *) qName   attributes:(NSDictionary *) attributeDict {
    if ([elementName isEqualToString:kimgurl])
    {
        elementFound = YES;
    }
}

foundCharacter:

代码语言:javascript
复制
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string {
if (elementFound == YES) {
         if(!currentValue)
         {
             currentValue = [[NSMutableString alloc] init];
         }

        [currentValue appendString: string];
    }
}

然后是didEndElement:

代码语言:javascript
复制
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {  
    if (elementFound) {
        if ([elementName isEqualToString:kimgurl]) {
            NSLog(@"imgurl: %@", currentValue);
            imageItems.imageURL = currentValue;
            NSLog(@"elname: %@", elementName);
            NSLog(@"img: %@", kimgurl);
            [currentValue setString:@""];
            NSLog(@"imageitem: %@", imageItems.imageURL);
        }
    }
}

我有NSLogs,因为imageItems.imageURL是空的。这是一个像这样的类文件。

ImageItems.h

代码语言:javascript
复制
@interface ImageItems : NSObject {
    //parsed data
    NSString *imageURL;
}

@property (nonatomic, retain) NSString *imageURL;

@end

ImageItems.m

代码语言:javascript
复制
#import "ImageItems.h"

@implementation ImageItems    
@synthesize imageURL;

-(void)dealloc
{
    [imageURL release];
    [super dealloc];
}

@end

从我的代码可以看出,我对目标-c是新的。

currentValue有我想要的价值。为什么imageItems为空?我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2011-01-14 00:59:38

在您的代码中,我看不到"imageItems“的赋值。您可能需要在某个时候将其分配给ImageItems的一个实例。也许是用self.imageItems = [[[ImageItems alloc] init] autorelease]imageItems = [[ImageItems alloc] init];

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4686060

复制
相关文章

相似问题

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