2010-12-02 18 views
1

Ich möchte in der Lage sein, meinen iphone bekommen Sie eine URL zu laden (oder wirklich die Datei, die die URL auf) in einen String. Der Grund, warum ich das möchte, ist, dass ich die Zeichenfolge analysieren kann, um nach Tags zu suchen und einige Werte daraus zu extrahieren.Ist es möglich, den Inhalt einer Web-Seite in einen String zu lesen, damit ich die Daten analysieren kann?

Die Dateien sind meist Webseiten so html oder .asp usw.

Jeder kann mich auf ein paar Hinweise geben, was ich tun, um dieses Ding irgendwie zu erreichen?

Vielen Dank, -Code

Antwort

3

Zuerst sollten Sie die URL

NSURL *anUrl = [NSURL URLWithString:@"http://google.com"]; 

es dann wiederum in einen String

NSError *error; 
NSString *htmlString = [NSString stringWithContentsOfURL:anUrl encoding:NSUTF8Encoding error:&error]; 

UPDATE:

Es ist Dokumentation den Inhalt bekommen eine URL durch NSURLConnection vom ADC site

Von dort verwenden, können Sie die Stringdarstellung der heruntergeladenen Daten erhalten

NSString *htmlString = [[NSString alloc] initWithData:urlData encoding:NSUTF8Encoding]; 
+2

Beachten Sie, dass dies den Aufruf Thread der Anwendung blockieren, bis die URL vollständig heruntergeladen ist. Wenn Sie den Download asynchron durchführen möchten, sollten Sie 'NSURLConnection' verwenden. –

+0

Guter Punkt - Aber es ist ein Anfang und das OP hat nach einem Hinweis gefragt. ;-) – Abizern

2

ich mit schätzen, dass diese und beantwortet wurde gebeten, aber ich würde empfehlen, dass Sie Ziehen Sie in Betracht, NSStrings StringWithContentsOfURL nicht zu verwenden: encoding: error: method dafür. Wenn es eine Nachricht Apple iOS Entwickler im vergangenen Jahr zu senden versucht hat, ist es das: nicht synchronen Netzwerk fordert die Haupt-Thread behelfen.

Wenn dieser Antrag mehr als 20 Sekunden dauert zu reagieren, die mit einem 3G oder EDGE-Verbindung nicht unwahrscheinlich ist, und sicherlich möglich, auf einer WiFi-Verbindung, wird iOS App töten. Was noch wichtiger ist, wenn Sie mehr als eine halbe Sekunde brauchen, um zurückzukehren, werden Sie Ihre Benutzer verärgern, wenn sie mit ihren nicht reagierenden Telefonen herumspielen.

NSURLConnection ist nicht sehr schwierig zu bedienen und ermöglicht es dem Gerät reagiert auf Ereignisse fortzusetzen, während es das Herunterladen von Inhalten ist.

+0

Ein guter Punkt - ich habe meine Antwort aktualisiert. – Abizern

Verwandte Themen