Iphone 字符串形式的Xml响应,DidStartElement未调用NSXMLParser

Iphone 字符串形式的Xml响应,DidStartElement未调用NSXMLParser,iphone,objective-c,xcode,nsxmlparser,Iphone,Objective C,Xcode,Nsxmlparser,这里我得到的是临时字符串中的xml响应。我需要从xml响应中获取一个标记值 -(void) httpDataDidFinishLoadingWithData:(NSData *)theData { m_activityLoaded=NO; temp=[[NSString alloc] initWithData:[dataLoader httpData] encoding:NSUTF8StringEncoding]; NSLog(@"TEMP IS TEMP %@", t

这里我得到的是临时字符串中的xml响应。我需要从xml响应中获取一个标记值

-(void) httpDataDidFinishLoadingWithData:(NSData *)theData
{
    m_activityLoaded=NO;
    temp=[[NSString alloc] initWithData:[dataLoader httpData]  encoding:NSUTF8StringEncoding];
    NSLog(@"TEMP IS TEMP %@", temp);
    parser=[[NSXMLParser alloc] initWithContentsOfURL:[NSURL URLWithString:temp]];
    [parser setShouldProcessNamespaces:NO];
    [parser setShouldReportNamespacePrefixes:NO];
    [parser setShouldResolveExternalEntities:NO];
    parser.delegate=self;
    [parser parse];
}
问题是DidStartElement在上述解析器分配之后甚至都没有调用,并且还没有准备好解析

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict
{
    if(![elementName isEqual:@"Result"])
        return;
    woeid = [attributeDict objectForKey:@"woeid"];
    NSLog(@"woeid   %@", woeid);
}
我的XML响应是

<?xml version="1.0" encoding="UTF-8"?>
<Body><woied></woied></Body>


请帮我摆脱这家伙。提前感谢

?[[NSXMLParser alloc]initWithContentsOfURL:[NSURL URLWithString:temp]]

也许您应该使用[[NSXMLParser alloc]initWithData:theData]创建解析器

您可以尝试以下方法:

-(void) httpDataDidFinishLoadingWithData:(NSData *)theData
{
    m_activityLoaded=NO;
    temp=[[NSString alloc] initWithData:[dataLoader httpData]  encoding:NSUTF8StringEncoding];
    NSLog(@"TEMP IS TEMP %@", temp);
    parser=[[NSXMLParser alloc] initWithData:[temp dataUsingEncoding: NSUTF8StringEncoding];
    [parser setShouldProcessNamespaces:NO];
    [parser setShouldReportNamespacePrefixes:NO];
    [parser setShouldResolveExternalEntities:NO];
    parser.delegate=self;
    [parser parse];
}

我认为这可能有用。您向解析器传递了错误的数据。

您是否将NSXMLparserDelegate添加到了.h文件中?是的,我的朋友,,但仍然不工作没有委托方法正在调用:(然后检查您的xml是否有效。我想问题出在xml中。请让我发布字符串响应。。。