NSXMLParser를 사용하여 XML 파일의 기본 구문 분석을 이해한다고해서 다음과 같은 상황이 발생합니다. 특정 속성의 값이 서로 다른 여러 요소가 있으므로 <table_data>...</table_data>
입니다. 예를 들어 : NSXMLParser didStartElement 특정 속성이있는 경우에만
<table_data attr="one">...</table_data>
<table_data attr="two">...</table_data>
<table_data attr="three">...</table_data>
는 didStartElement에있는 동안, 나는 파서 계정으로는
attr="one"
이있는 경우에만 시작 요소로
<table_data>
요소를 소요하고 싶습니다.
이것은 내가 지금까지 등
을 <table_data attr="one">
의 아이 요소의 내용을 얻을 수 있지만 <table_data attr="two">
, <table_data attr="three">
의 수 foundCharacters에서 그 의미 것,이 시도 :
- (void)parser:(NSXMLParser*)parser didStartElement:(NSString *)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary*)attributeDict {
elementoCorrente = [elementName copy];
if ([elementName isEqualToString:@"table_data"]) {
if ([[attributeDict objectForKey:@"attr"] isEqualToString:@"one"]) {
stringDesc = [[NSMutableString alloc] init];
}
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if ([elementoCorrente isEqualToString:@"field"]) {
[stringDesc appendString:string];
NSLog(@"%@",string);
}
}
하지만 나는 <field>
요소, 모든 하위의 내용에 대한 로그를 얻는다. <table_data>
. <table_data attr="one">
의 하위 요소 인 경우 <field>
요소의 내용 만 인쇄 할 수 있습니까? 감사 파비오
제 생각에는 올바른 대답입니다. 그리고 그것이 얼마나 쉬운 지 믿기지 않습니다. 부끄러운 줄 알았어 ... Rob에게 시간을내어 작업 코드를 제공하는 데 많은 시간을 보냈습니다. :) 또한 Helderdarocha의 대답은 내가 할 수있는 두 사람 덕분에 좋은 일이었습니다! –