three 20 解析 xml

来源:互联网 发布:linux上使用telnet 编辑:程序博客网 时间:2024/06/04 20:05

//

//  CMBCMallMessageEngine.h

//  

//

//  Created by  on 1/31/13.

//  Copyright (c) 2013 P&C,PhoneYeah. All rights reserved.

//


#import<Foundation/Foundation.h>





@interface CMBCMallMessageEngine :NSObject <TTURLRequestDelegate>

{

    TTURLRequest *_mallMessageDownLoadRequest;

    TTURLRequest *_mallMessageUpDateRequest;

}

@property (nonatomic,retain)TTURLRequest *mallMessageDownLoadRequest;

@property (nonatomic,retain)TTURLRequest *mallMessageUpDateRequest;



-(void)cancleRequest;

-(void)sendDownLoadMallMessageRequest;

-(void)cancleDownLoadRequest;

-(void)sendUpDateMessageRequest;

-(void)cancleUpDateRequest;


@end


//

//  CMBCMallMessageEngine.m

//  

//

//  Created by  on 1/31/13.

//  Copyright (c) 2013 P&C,PhoneYeah. All rights reserved.

//


#import"CMBCMallMessageEngine.h"

#import"CMBCMallPromptMessage.h"


@implementation CMBCMallMessageEngine

@synthesize mallMessageDownLoadRequest =_mallMessageDownLoadRequest;

@synthesize mallMessageUpDateRequest =_mallMessageUpDateRequest;


-(void)dealloc

{

    [_mallMessageDownLoadRequestrelease];

    [_mallMessageUpDateRequestrelease];

    [superdealloc];

}


-(void)cancleRequest

{

    [selfcancleDownLoadRequest];

    [selfcancleUpDateRequest];

}


-(void)sendDownLoadMallMessageRequest

{

   self.mallMessageDownLoadRequest = [TTURLRequestrequestWithURL:CMBC_DOWNLOAD_MESSAGE_URLdelegate:self];

    [self.mallMessageDownLoadRequestsetHttpMethod:Request_HttpMethod_Get];

    [self.mallMessageDownLoadRequestsetContentType:@"appliction/xml"];

   TTURLXMLResponse *response = [[TTURLXMLResponsealloc]init];

   self.mallMessageDownLoadRequest.response = response;

    response.isRssFeed =YES;//导致 xml root 只有一个

    [response release];

    [self.mallMessageDownLoadRequestsend];

}


-(void)cancleDownLoadRequest

{

   if (_mallMessageDownLoadRequest && [_mallMessageDownLoadRequestisLoading])

    {

        [_mallMessageDownLoadRequestcancel];

    }

}


-(void)sendUpDateMessageRequest

{


}


-(void)cancleUpDateRequest

{

   if (_mallMessageUpDateRequest && [_mallMessageUpDateRequestisLoading])

    {

        [_mallMessageUpDateRequestcancel];

    }

}


-(void)parserXMLResponse:(TTURLXMLResponse *)response

{

    TTURLXMLResponse *mallmessageResponse = (TTURLXMLResponse *)response;

    NSDictionary *mallmessageRoot = mallmessageResponse.rootObject;

    NSDictionary *messagelist = [mallmessageRoot objectForKey:@"mesgLists"];

    NSDictionary *messagel = [messagelist objectForKey:@"mesgList"];

    NSArray *messagearray = [messagel objectForKey:@"mesg"];

    

   //NSInteger arraycount = messagearray.count;

    

   CMBCMallPromptMessage *mallPromptmessage = [[CMBCMallPromptMessagealloc]init];


    for (id item in messagearray) {

        

        NSString * messageId = [[item objectForKey:@"busiId"]objectForXMLNode];

      // NSString *messageId = @"1001";

        NSString *message = [[item objectForKey:@"busiText"]objectForXMLNode];

        

        if ([messageId isEqualToString:@"1001"]) {

            mallPromptmessage.cinemaTicketMessage = message;

        }

        else if([messageId isEqualToString:@"1002"])

        {

            mallPromptmessage.gameCardMessage = message;

        }

        else if([messageId isEqualToString:@"1003"])

        {

            mallPromptmessage.passengerTicketMessage = message;

        

        }

        else if([messageId isEqualToString:@"1004"])

        {

            mallPromptmessage.interMarketmessage = message;

        

        }

        

    }



    [CMBCMallPromptMessagesaveMallPromptMessageToUserDefault:mallPromptmessage];

}


#pragma TTURLRequest delegate回调


-(void)request:(TTURLRequest *)request didFailLoadWithError:(NSError *)error

{


}


-(void)requestDidFinishLoad:(TTURLRequest *)request

{

   if (request ==self.mallMessageDownLoadRequest) {

        

        if ([request.response isKindOfClass:[TTURLXMLResponse class]]) {

            //parserXML

            

            [selfparserXMLResponse:request.response];

        }

    }

   elseif (request ==self.mallMessageUpDateRequest)

    {

        

    }


}


@end


注释:  response.isRssFeed = YES// 导致 xml root 只有一个 
不设置 isRssFeed 会导致 xml 解析失败 只有一个root
0 0
原创粉丝点击