這是我的countries.xml文件。解析XML時出錯「解析文檔錯誤!」
有什麼問題請回答我,我是新來的iOS .....
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
<countris>
<country>
<countryname>india<countryname>
</country>
</countris>
</plist>
這是我viewDidLoad
:
NSString *filename = [[NSBundle mainBundle] pathForResource:@"countris" ofType:@"xml"];
NSData *data = [NSData dataWithContentsOfFile:filename];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
Myparser *myParser = [[Myparser alloc] init];
[parser setDelegate:myParser];
BOOL success = [parser parse];
if (success)
{
NSMutableArray *users = [myParser arraydata];
NSString *log= [NSString stringWithFormat:
@"This is an array of User objects:\n\n%@",
[users description]];
NSLog(log);
}
else
{
NSLog(@"Error parsing document!");
[[[UIAlertView alloc] initWithTitle:nil
message:@"Error parsing document!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
}
我Myparser.m文件,其中我的implemantig我NSXMLParserDelegate協議
#import "Myparser.h"
#import "MyParserData.h"
@implementation Myparser
@synthesize mydata,myparser,arraydata,flag,currentElementValue;
- (id) init {
if(self = [super init]) {
currentElementValue = [[NSMutableString alloc] initWithString:@""];
arraydata = [[NSMutableArray alloc] init];
flag = FALSE;
}
return self;
}
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"countris"]) {
return;
} else if ([elementName isEqualToString:@"country"]) {
self.mydata = [[MyParserData alloc] init];
} else {
self.currentElementValue = [[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if (self.currentElementValue) {
[self.currentElementValue appendString:string];
}
}
- (void)parser:(NSXMLParser *)parserdidEndElement:(NSString *)elementNamenamespaceURI: (NSString *)namespaceURIqualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"counteis"]) {
return;
}
if ([elementName isEqualToString:@"country"]) {
[self.arraydata addObject:mydata];
self.mydata = nil;
} else {
[self.mydata setValue:self.currentElementValue forKey:elementName];
}
self.currentElementValue = nil;
}
@end
你的問題是什麼?如果你沒有指明你的問題,我們該如何解決? – manujmv
@manujmv我認爲問題在那裏的問題標題 –
感謝您的幫助我git的問題... –