【发布时间】:2014-03-11 14:31:21
【问题描述】:
话说我了解了用 NSXMLParser 解析 XML 文件的基本原理,我有以下情况,其中我有几个元素 <table_data>...</table_data> 对于某个属性的值彼此不同,所以,例如:
<table_data attr="one">...</table_data>
<table_data attr="two">...</table_data>
<table_data attr="three">...</table_data>
在 didStartElement 中,我希望解析器仅在具有 attr="one" 时才将 <table_data> 元素视为开始元素。
这意味着在 foundCharacters 中我只能获得 <table_data attr="one"> 的子元素的内容,但不能获得 <table_data attr="two">、<table_data attr="three"> 等的子元素的内容。
现在,我试试这个:
- (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> 元素的内容?
谢谢
法比奥
【问题讨论】:
标签: ios xml sdk nsxmlparser