In the bundle I have a connection to an external folder that is blue color and not the usual yellow color. Inside this folder there is an xml file from which I have to read the content.
This is the xml file from which I derive the value of "id":
<?xml version='1.0' encoding='UTF-8'?>
<root>
<event id="2"></event>
</root>
This is my code:
- (void)viewDidLoad
{
NSString *pathFile = [[NSBundle mainBundle] bundlePath];
NSString *path = [[NSString alloc] initWithString:[pathFile stringByAppendingPathComponent:@"config.xml"]];
NSURL *xmlURL = [NSURL fileURLWithPath:path];
NSXMLParser *parser = [[ NSXMLParser alloc] initWithContentsOfURL:xmlURL];
NSLog(@"the parser xml is %@", parser);
//the parser xml is <NSXMLParser: 0x967d870>
[parser setDelegate:self];
BOOL success = [parser parse];
if(success == YES){
NSLog(@"success");
} else {
NSLog(@" not success"); //is not success, why?
}
[parser release];
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
//in this method does not enter
if ([elementName isEqualToString:@"event"]){
NSLog(@" %@", elementName);
}
}
Blue folders in Xcode appear as actual folders in your app's bundle. This means you need to include the folder name in the file's path in your code:
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSString *folderPath = [bundlePath stringByAppendingPathComponent:@"folderName"];
NSString *path = [folderPath stringByAppendingPathComponent:@"config.xml"];
Replace folderName
with the actual name of your folder.
Or you can do:
NSURL *xmlURL = [[NSBundle mainBundle] URLForResource:@"config" withExtension:@"xml" subdirectory:@"folderName"];