我是iOS應用程序開發新手,遇到問題。解析屬性XML
XML
<?xml version="1.0" encoding="UTF-8"?>
<Books>
<Book id="1">
<title_1>Circumference</title_1>
<author>Nicholas Nicastro</author>
<summary>Eratosthenes and the Ancient Quest to Measure the Globe.</summary>
</Book>
<Book id="2">
<title_1>Copernicus Secret</title_1>
<author>Jack Repcheck</author>
<summary>How the scientific revolution began</summary>
</Book>
<Book id="3">
<title_1>Angels and Demons</title_1>
<author>Dan Brown</author>
<summary>Robert Langdon is summoned to a Swiss research facility to analyze a cryptic symbol seared into the chest of a murdered physicist.</summary>
</Book>
<Book id="4">
<title_1>Keep the Aspidistra Flying</title_1>
<author>George Orwell</author>
<summary>A poignant and ultimately hopeful look at class and society, Keep the Aspidistra Flying pays tribute to the stubborn virtues of ordinary people who keep the aspidistra flying.</summary>
</Book>
</Books>
CODE
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"Books"])
{
data_array = [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"Book"])
{
bookID= [[attributeDict objectForKey:@"id"]integerValue];
NSLog(@"Reading id value :%d",bookID);
//NSLog(@"Processing Element: %@",elementName);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if(!test_string)
{
test_string = [[NSMutableString alloc] initWithString:string];
}
else
{
[test_string appendString:string];
}
//NSLog(@"Processing Value: %@",test_string);
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"Books"])
return;
if ([elementName isEqualToString:@"Book"])
{
[data_array addObject:test_string];
}
else
test_string = nil;
}
如果我按照這個方法,然後它會跳過第一本書,並只顯示最後的三本書。
如果我把test_string=nil
在if塊,而不是別的話,就說明它的作者姓名以及
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"Books"])
return;
if ([elementName isEqualToString:@"Book"])
{
[data_array addObject:test_string];
test_string = nil;
// data_array = nil;
}
}
另外我也得到一些空間時,它顯示在我的表視圖。
仍然有問題? –
謝謝一個男人!萬分感謝!!! 工作順利! –
@DeepakKhiwani:很高興。感謝您的評論:) –