- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString *myurlString = @"http://tuxun.vicp.cc:8999/scq/ZfjlReader.jsp";
    NSURL *url = [[NSURL alloc] initWithString:myurlString];
    NSXMLParser *xmlRead = [[NSXMLParser alloc] initWithContentsOfURL:url];//初始化NSXMLParser对象
    [xmlRead setDelegate:self];//设置NSXMLParser对象的解析方法代理
    BOOL success = [xmlRead parse];//调用代理解析NSXMLParser对象,看解析是否成功}   #pragma  NSMXLParser Delegate Methods
- (void)parser:(NSXMLParser *)parser 
didStartElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI
 qualifiedName:(NSString *)qName 
    attributes:(NSDictionary *)attributeDict
{
    NSLog(@"Started parsing %@", elementName);
    
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 

    NSLog(@"Found: %@", string); 
}  
上面的方法我写在了viewDidLoad里。但是委托方法没有执行。。这是怎么回事? NSLog没有打出东西,断点测了也没有进入这个方法请问怎么回事?

解决方案 »

  1.   

    类声明中<NSXMLParserDElegate> 加了吗
      

  2.   

    应该和你你解析的xml文档编码有一定关系
      

  3.   

    楼主你确定NSXMLParser *xmlRead = [[NSXMLParser alloc] initWithContentsOfURL:url];
    返回后,网络上的xml文件被正确读取了?
      

  4.   

    如果正确读到了xml文件,那么解析过程很有可能出错了,
    你加上一个读取错误的回调,看看是不是进去了。
      

  5.   

    首先你设置了bool了查看下bool的状态..看看是不是成功了?!
    另外就是你的这个连接地址是不是一个xml,如果不是就是要想服务器请求一个xml下来,然后在做xml的解析...
    希望能帮到你..
      

  6.   

    解析的声明出错了,应该这样写:
    先发一个ASIHTTPRequest 请求,
    然后在他的请求结束的方法中调用
    解析方法并且解析时数据应该为NSData的类型
      

  7.   

        NSString *myurlString = @"http://tuxun.vicp.cc:8999/scq/ZfjlReader.jsp";
        NSURL *url = [[NSURL alloc] initWithString:myurlString];
        NSData *data = [NSData dataWithContentsOfURL: url];
        NSXMLParser *xmlRead = [[NSXMLParser alloc] initWithData:data];
        [xmlRead setDelegate:self];
        BOOL success = [xmlRead parse]
        if(success) {NSLog(@"解析成功");} else {NSLog(@"解析失败");}
      

  8.   

    一般用第三方的解析,会好一些,如GDataXML