Iphone 如何通过xml解析器解析此xml文件中的属性
XML文件代码:Iphone 如何通过xml解析器解析此xml文件中的属性,iphone,xml-parsing,Iphone,Xml Parsing,XML文件代码: <Books> <Book id="1" isbn="123456"> <name>Let Us C</name> <authors> <author>Yashwant Kanetkar</author> <author>ABC</author> </authors> <price>250.00</price&
<Books>
<Book id="1" isbn="123456">
<name>Let Us C</name>
<authors>
<author>Yashwant Kanetkar</author>
<author>ABC</author>
</authors>
<price>250.00</price>
</Book>
<Book id="2" isbn="345678">
<name>Programing With C++</name>
<authors>
<author>Balaguruswamy</author>
<author>XYZ</author>
</authors>
<price>400.00</price>
</Book>
<Book id="3" isbn="789012">
<name>Professional iPhone and iPad Application Development</name>
<authors>
<author>Gene Backlin</author>
<author>QWE</author>
</authors>
<price>550.00</price>
</Book>
<Book id="4" isbn="901234">
<name>Beginning iOS 4 Application Development</name>
<authors>
<author>Wei-Meng Lee</author>
<author>IOP</author>
</authors>
<price>500.00</price>
</Book>
</Books>
首先取一个布尔变量。然后编写以下代码。也许这会对你有所帮助。我几天前就做了相关的工作 第一个.h文件
@interface EventsViewController : UIViewController <NSXMLParserDelegate>
{
NSMutableArray *_idArray;
NSMutableArray *_isbnArray;
BOOL isBook;
}
//现在是xml解析器委托方法
pragma标记-NSXMLParser委托方法
注意:我已经检查了它,它正在工作,您可以在代码中使用它,如果它仍然不工作,那么您的项目中会有其他错误,您可以通过创建单独的项目来验证它。首先使用bool变量。然后编写以下代码。也许这会对你有所帮助。我几天前就做了相关的工作 第一个.h文件
@interface EventsViewController : UIViewController <NSXMLParserDelegate>
{
NSMutableArray *_idArray;
NSMutableArray *_isbnArray;
BOOL isBook;
}
//现在是xml解析器委托方法
pragma标记-NSXMLParser委托方法
注意:我已经检查了它,它正在工作,你可以在你的代码中使用它,如果它仍然不工作,那么你的项目中会有其他错误,你可以通过创建单独的项目来验证它。不工作。。。!应用此代码后,甚至其他东西也不会显示。。。!它应该起作用,在类级别定义上述三行。以及“开始”方法中的if/else。将您的代码通过电子邮件发送到“khalid0491@gmail.com“我将为您编写代码,我已经完成了。读取xml文件并显示和打印数据,它正在工作。我将更新我的答案。如果它真的对你有帮助,请接受它并投票。检查它,如果它对你没有帮助,那么我将修改你的代码。不工作。。。!应用此代码后,甚至其他东西也不会显示。。。!它应该起作用,在类级别定义上述三行。以及“开始”方法中的if/else。将您的代码通过电子邮件发送到“khalid0491@gmail.com“我将为您编写代码,我已经完成了。读取xml文件并显示和打印数据,它正在工作。我将更新我的答案。如果它真的帮助了你,请接受它并投票。检查它,如果它没有帮助你,那么我会修改你的代码。
- (void)viewDidLoad
{
[super viewDidLoad];
_idArray = [[NSMutableArray alloc] init];
_isbnArray = [[NSMutableArray alloc] init];
NSString *xmlString = [[NSBundle mainBundle] pathForResource:@"today_in_history_short" ofType:@"xml"];
NSURL * fileURL = [NSURL fileURLWithPath:xmlString];
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:fileURL];
[parser setDelegate:self];
[parser parse];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
if ([elementName isEqualToString:@"Books"]) {
isBook = YES;
}
else if ([elementName isEqualToString:@"Book"] && isBook){
NSString *idString = [attributeDict objectForKey:@"id"];
NSString *isbnString = [attributeDict objectForKey:@"isbn"];
[_idArray addObject:idString];
[_isbnArray addObject:isbnString];
NSLog(@"Book id is: %@ and Book isbn is: %@",idString,isbnString);
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
if ([elementName isEqualToString:@"Books"]) {
isBook=NO;
NSLog(@"Id Array count is :%d",[_idArray count]);
}
}