用于IOS的XMLparsing器SDK

我需要能够为我正在处理的项目parsingXML。

我怎样才能从一个网页parsingXML到iPhone然后阅读它的内容?

按照这个, 如何使用ASIHTTPRequest parsingObjective C中的XML并处理所有这些方法

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string 

也看到这个链接

  NSString *url=@"http://www.lancers.jp/work"; NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]; NSDictionary *dict=[XMLParser dictionaryForXMLData:data error:nil]; NSLog(@"%@",[dict description]); and use below file:::::: XMLParser.h // // XMLReader.h // // Created by Troy on 9/18/10. // Copyright 2010 Troy Brant. All rights reserved. // #import <Foundation/Foundation.h> @interface XMLParser : NSObject<NSXMLParserDelegate> { NSMutableArray *dictionaryStack; NSMutableString *textInProgress; NSError **errorPointer; } + (NSDictionary *)dictionaryForXMLData:(NSData *)data error:(NSError **)errorPointer; + (NSDictionary *)dictionaryForXMLString:(NSString *)string error:(NSError **)errorPointer; @end XMLParser.m // // XMLReader.m // // Created by Troy on 9/18/10. // Copyright 2010 Troy Brant. All rights reserved. // #import "XMLParser.h" NSString *const kXMLReaderTextNodeKey = @"text"; @interface XMLParser (Internal) - (id)initWithError:(NSError **)error; - (NSDictionary *)objectWithData:(NSData *)data; @end //NSString *url=[NSString stringWithFormat:@"%@",NSLocalizedString(@"locationname", nil)]; //url=[NSString stringWithFormat:url,app.latnear,app.lngnear]; //NSData *data=[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]; //NSDictionary *dict=[XMLReader dictionaryForXMLData:data error:nil]; @implementation XMLParser #pragma mark - #pragma mark Public methods + (NSDictionary *)dictionaryForXMLData:(NSData *)data error:(NSError **)error { XMLParser *reader = [[XMLParser alloc] initWithError:error]; NSDictionary *rootDictionary = [reader objectWithData:data]; [reader release]; return rootDictionary; } + (NSDictionary *)dictionaryForXMLString:(NSString *)string error:(NSError **)error { NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; return [XMLParser dictionaryForXMLData:data error:error]; } #pragma mark - #pragma mark Parsing - (id)initWithError:(NSError **)error { if (self = [super init]) { errorPointer = error; } return self; } - (void)dealloc { [dictionaryStack release]; [textInProgress release]; [super dealloc]; } - (NSDictionary *)objectWithData:(NSData *)data { // Clear out any old data [dictionaryStack release]; [textInProgress release]; dictionaryStack = [[NSMutableArray alloc] init]; textInProgress = [[NSMutableString alloc] init]; // Initialize the stack with a fresh dictionary [dictionaryStack addObject:[NSMutableDictionary dictionary]]; // Parse the XML NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; parser.delegate = self; BOOL success = [parser parse]; // Return the stack's root dictionary on success if (success) { NSDictionary *resultDict = [dictionaryStack objectAtIndex:0]; return resultDict; } return nil; } #pragma mark - #pragma mark NSXMLParserDelegate methods - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { // Get the dictionary for the current level in the stack NSMutableDictionary *parentDict = [dictionaryStack lastObject]; // Create the child dictionary for the new element, and initilaize it with the attributes NSMutableDictionary *childDict = [NSMutableDictionary dictionary]; [childDict addEntriesFromDictionary:attributeDict]; // If there's already an item for this key, it means we need to create an array id existingValue = [parentDict objectForKey:elementName]; if (existingValue) { NSMutableArray *array = nil; if ([existingValue isKindOfClass:[NSMutableArray class]]) { // The array exists, so use it array = (NSMutableArray *) existingValue; } else { // Create an array if it doesn't exist array = [NSMutableArray array]; [array addObject:existingValue]; // Replace the child dictionary with an array of children dictionaries [parentDict setObject:array forKey:elementName]; } // Add the new child dictionary to the array [array addObject:childDict]; } else { // No existing value, so update the dictionary [parentDict setObject:childDict forKey:elementName]; } // Update the stack [dictionaryStack addObject:childDict]; } - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { // Update the parent dict with text info NSMutableDictionary *dictInProgress = [dictionaryStack lastObject]; // Set the text property if ([textInProgress length] > 0) { [dictInProgress setObject:textInProgress forKey:kXMLReaderTextNodeKey]; // Reset the text [textInProgress release]; textInProgress = [[NSMutableString alloc] init]; } // Pop the current dict [dictionaryStack removeLastObject]; } - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { // Build the text value [textInProgress appendString:string]; } - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError { // Set the error pointer to the parser's error object *errorPointer = parseError; } @end