"유럽"과 "아메리카"는 태그의 속성입니다. 태그에 "이름"으로 정의 된 속성. 당신은 실제로 NSXMLParser
에 익숙해 져야하고, 그것을 파싱하는 이벤트 구동 방식을 사용해야합니다. 기본적으로 NSXMLParser
의 대리자로 NSObject
하위 클래스를 만들고 요소를 만날 때 사용자 지정 개체의 대리자 메서드를 호출합니다. 그리고이 매우 간단한 XML은 완벽한 예제입니다. 예를 들어.
이 코드는 ARC를 사용합니다.
SimpleExampleParse.h :
@interface SimpleExampleParse : NSObject <NSXMLParserDelegate>
@property (strong, nonatomic) NSMutableArray *continents;
-(id)initWithString:(NSString *)stringToParse;
@end
SimpleExampleParse.m :
#import "SimpleExampleParse.h"
@implementation SimpleExampleParse{
NSXMLParser *myParser;
}
@synthesize continents;
-(id)initWithString:(NSString *)stringToParse{
if ((self = [super init])){
myParser = [[NSXMLParser alloc] initWithData:[stringToParse dataUsingEncoding:NSUTF8StringEncoding]];
myParser.delegate = self;
self.continents = [[NSMutableArray alloc] init];
[myParser parse];
}
return self;
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
// Check to see if this element has an attribute "name".
NSString *name = [attributeDict objectForKey:@"name"];
// If name is not nil add it to our Array
if (name) [continents addObject:name];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
// We don't care your XML contains no content
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
// We don't care your XML contains no content
}
@end
이 클래스는 다음과 같이 사용된다 :
는
NSString *stringToParse = @"<continents><continent1 id=\"EUR\" name=\"EUROPE\"></continent1><continent2 id=\"AME\" name=\"AMERICA\"></continent2></continents>";
SimpleExampleParse *parser = [[SimpleExampleParse alloc] initWithString:stringToParse];
NSLog(@"contenents %@",parser.continents);
로그에서 출력 될 것이다
contenents (
EUROPE,
AMERICA
)
당신은 당신 앞에서 일하는 것이 있으니 공부하고 공부하는 방법을 배우십시오.
귀하의 질문은 광범위합니다; 더 많은 세부 사항이 필요합니다. 이 XML을 구문 분석 할 데이터 구조는 무엇입니까? "나는 같은 시간에 결과를 보여줄 수 없다"는 것은 무엇을 의미합니까? 그 결과로 무엇을해야합니까? 지금까지 뭐 해봤 어? – NJones
iphone에서 유럽과 미국을 표시해야합니다. NSXMLParser가있는 유럽 만 파싱하면 작동하지만 유럽과 미국을보고 싶습니다. TouchXML을 사용하면 더 좋을 것 같습니다. 다른 노드는 많이 이해하지 못합니다. XML. –