Question

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);

    }

}
Was it helpful?

Solution

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"];

OTHER TIPS

Try this one :

    NSString *configFileURL = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"XMLFileName"];

    NSDictionary *settingsDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] 
    pathForResource:configFileURL ofType:@"xml"]];
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top