Я планирую разработать приложение для извлечения части данных xml из файла на основе ввода пользователем. Мои коды хорошо работают для извлечения содержимого xml-файла, но я не могу найти лучший способ попросить парсер дать мне все элементы, которые находятся внутри, например, (enter name = «TMF1202») ... Пользователь будет дать всасываемого имя в качестве входных данных и парсер будет извлекать элементы, которые существуют только в этом впускном теге Вот мой Parser код:Фильтрация данных анализатора XML
#import "Parser.h"
#import "TimeTableViewController.h"
@implementation Parser
@synthesize currentElementPointer, rootElement;
-(id)initParser
{
if(self = [super init]) {
tvc = (TimeTableViewController*)[[UIApplication sharedApplication]delegate];
}
return self;
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if(self.rootElement == nil) {
self.rootElement = [[List alloc]init];
self.currentElementPointer = self.rootElement;
} else {
List *newList = [[List alloc]init];
newList.parent = self.currentElementPointer;
[self.currentElementPointer.subElements addObject:newList];
self.currentElementPointer = newList;
}
self.currentElementPointer.name = elementName;
self.currentElementPointer.attributes = attributeDict;
// theList.intake = [[attributeDict objectForKey:@"name"]stringValue];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if([self.currentElementPointer.text length] > 0) {
self.currentElementPointer.text = [self.currentElementPointer.text stringByAppendingString:string];
} else {
self.currentElementPointer.text = string;
}
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
self.currentElementPointer = self.currentElementPointer.parent;
}
@end
Это структура моего файла XML:
Несмотря на то, что он не упомянул о благодарности по комментариям, я не удержался, чтобы не сказать этого столь щедрого четко определенного ответа. хорошо Сделал Роб. – Ben