2011-07-05 70 views
2

我可以讀遠程 XML用下面的代碼:如何讀取XML「本地文件」和解析可可觸摸

-(id)loadXMLByURL:(NSString *)urlString 
{ 
    tweets = [[NSMutableArray alloc] init]; 
    NSString *filePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:urlString]; 
    NSURL *url = [NSURL URLWithString:urlString]; 
    parser = [[NSXMLParser alloc] initWithContentsOfURL:url];  

    parser.delegate = self; 
    [parser parse]; 
    return self; 
} 

而且我在這裏調用上述功能:

- (void)viewDidLoad 
{ 
    xmlcont = [[XMLController alloc] loadXMLByURL:@"http://192.168.10.12:81/book.xml"]; 

    for (Tweet *t in [xmlcont tweets]) { 
     NSLog(@"At date: %@ you wrote: %@",[t createdAt], [t content]); 
    } 

    [super viewDidLoad]; 
} 

其實我想做這樣的事情,只是一個區別。我想讀取一個XML 本地文件這是我的資源文件夾我的項目在XCode,但definitelly我不知道該怎麼做!我越來越瘋狂了!我只能讀取XML遠程文件(http://..../file.xml)。

回答

6

假設您的資源文件夾中有一個file.xml需要解析。你可以得到這樣的文件路徑,

NSString * filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"xml"]; 

有兩種方法可以使用它來得到你想要的。

使用文件URL

NSURL * fileURL = [NSURL fileURLWithPath:filePath]; 
NSXMLParser * parser = [[NSXMLParser alloc] initWithContentsOfURL:fileURL]; 
    .... 

使用文件數據

NSData * fileData = [NSData dataWithContentsOfFile:filePath]; 
NSXMLParser * parser = [[NSXMLParser alloc] initWithData:fileData]; 
    .... 
+0

感謝您完整的例子。這很容易,但是很少有像你這樣解釋的例子。非常感謝你! – jbernardo

+0

@jbernardo如果這個答案解決了你的問題,你應該接受它,給答案者一些好的信用:-) – 2012-07-10 10:50:28