2010-11-23 6 views
2

Ich habe eine lokale XML-Datei, von der ich weiß, dass sie UTF-8 wohlgeformtes XML enthält. Aber NSXMLParser wird nicht korrekt analysieren.Das Lesen der lokalen XML-Datei bewirkt, dass NSXMLParser NULL zurückgibt.

Pfad zur Datei:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"example.xml"]; 

die XML-Daten aus Web-Speichern:

NSURL *xml = [NSURL URLWithString:@"http://www.example.com/example.xml"]; 
NSString *data = [[NSString alloc] initWithContentsOfURL:xml encoding:NSUTF8StringEncoding error:nil]; 
[data writeToFile:appFile atomically:YES encoding:NSUTF8StringEncoding error:nil]; 

die XML-Analyse:

NSURL *xmlFile = [NSURL URLWithString:appFile]; 
NSXMLParser *addressParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlFile]; 

Wenn ich versuche, die NSURL "xml" Parsen es direkt funktioniert, aber der obige Code wird NULL und keine Fehler zurückgeben. Ich habe einen anderen Beitrag hier im Forum gefunden, der genau dasselbe beschreibt, aber ich kann ihn nicht wiederfinden, und der Beitrag hatte keine Antworten.

Hoffe jemand kann helfen! Im Grunde geht es nur darum, ein Web-XML in eine Datei zu speichern und dann an NSXMLParser zu übergeben.

Antwort

6

Ändern Sie diese Zeile:

NSURL *xmlFile = [NSURL URLWithString:appFile]; 

dazu:

NSURL *xmlFile = [NSURL fileURLWithPath:appFile]; 

Da appfile ein lokaler Dateisystempfad und nicht eine Internet-URL.