HTML Tabellen auslesen

  • HTML Tabellen auslesen

    Hallo Leute,

    erst einmal: ich bin relativ neu in Objective C und versuche schon seit Tagen etwas zu finden - ich komme einfach nicht weiter.
    Vielleicht hatte von euch schon mal einer mit einer ähnlichen Problematik zu kämpfen.

    Folgendes Problem: ich möchte den Inhalt einer HTML Tabelle, die sich im Netz befindet in ein Array bzw. eine Variable speichern und sie dann über ein TableView ausgeben.

    Das Problem: Ich habe auf den Inhalt und Gestaltung der Tabelle keinen Einfluss. Es handelt sich um einen Mensaspeiseplan unserer FH (mensa.cwplus.de/) dessen Inhalt wöchentlich geändert wird.

    Gibt es Ideen wie ich mit der Problematik vorgehe?
    Über einen kleinen Denkanstoß würde ich mich freuen.

    Vielen Dank im Vorraus.
  • Uha, hässliche Sache, da HTML ja nicht unbedingt den Anspruch hat strickte Regeln einhalten zu müssen im Vergleich zu XML.

    Gibt es keinen Service im Hintergrund, der die Inhalte liefern kann, bevor Sie als HTML ausgegeben werden?
    Ansonsten würde ich als Entwickler niemals für dauerhafte Funktionalität einer solchen App garantieren,
    je nachdem wie der Code auf dem Server zustande kommt.

    EDIT
    Mit NSURLRequest einlesen und dann mit NSScanner parsen. Denke mal die HTML Entitäten werden sich nicht jede Woche ändern.
    Wenn Sie sich tatsächlich nicht unbedingt ändern passt's.
    dealloc {
    [myLeak retain];
    }
  • wenn es eine iPhone-app ist dann würd ich da meinen eigenen server zwischenschalten. also mein server parst die fremde seite (geht recht einfach in php mit einigen tools) und gibt sie als plist aus.
    mein iOS-app kann die dann einfahc mit einem einzeiler laden. ändert sich was an der fremden seite brauche ich nur das script auf meinem server ändern und nicht das app (dann muss man ja wieder 14 tage auf review etc warten...)

    edit: hab letztens mal schnell was getestet und das erste suchergebnis bei google verwendet. klappte wunderbar: simplehtmldom.sourceforge.net/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von gritsch ()

  • gritsch schrieb:

    das kann man aber auch "billiger" haben. und eben mit den ganzen genannten vorteilen.

    Mehrere Wege führen nach Rom. Ich überlege mir immer dreimal, ob ich mir eine weitere aktive Serverkomponente an die Backe binden will. Clientseitiges Parsen hat in meinen Augen auch seine Reize.

    Um nicht bei jeder Änderung der Originalseitenstruktur die App ändern zu müssen, könnte man auch das Javascript, das die Inhalte extrahiert, auf seinen Server legen und im Client cachen. Dann hat man weniger Wartungsaufwand, weil der eigene Server passiv ist und die Verfügbarkeit des eigenen Servers ist auch weniger kritisch.
    Multigrad - 360°-Produktfotografie für den Mac
  • mattik schrieb:

    gritsch schrieb:

    das kann man aber auch "billiger" haben. und eben mit den ganzen genannten vorteilen.

    Mehrere Wege führen nach Rom. Ich überlege mir immer dreimal, ob ich mir eine weitere aktive Serverkomponente an die Backe binden will. Clientseitiges Parsen hat in meinen Augen auch seine Reize.

    Um nicht bei jeder Änderung der Originalseitenstruktur die App ändern zu müssen, könnte man auch das Javascript, das die Inhalte extrahiert, auf seinen Server legen und im Client cachen. Dann hat man weniger Wartungsaufwand, weil der eigene Server passiv ist und die Verfügbarkeit des eigenen Servers ist auch weniger kritisch.


    ist klar, für einfache sachen vielleicht ja ganz ptaktisch aber wenn du mehr infos zusammensammeln musst dann hab ich die lieber in einem xml.
    aufm server kann man die infos ja auch cachen und nur die daten ans app übertragen die man wirklich braucht (ohne overhead)
  • Ok ich habe ziemlich wenig Ahnung von PHP.
    Also eigentlich gar keine... Ich habe halt die ersten "Hello Server" gemacht mit md5 Passwortabfrage ...
    Aber meine Frage ist, ob es eine Funktion dadrinne gibt in der PHP-Datei, mit der ich den ganzen Text der Website rausbekomme?
    Oder nur den Text und Inhalt der Tabelle?
    Gruß

    Robin
  • robin_ schrieb:

    Ok ich habe ziemlich wenig Ahnung von PHP.
    Also eigentlich gar keine... Ich habe halt die ersten "Hello Server" gemacht mit md5 Passwortabfrage ...
    Aber meine Frage ist, ob es eine Funktion dadrinne gibt in der PHP-Datei, mit der ich den ganzen Text der Website rausbekomme?
    Oder nur den Text und Inhalt der Tabelle?


    schau dir den link an den ich gepostet habe. da steht ja ein 3-zeilen-samplecode.

    wenn du dir mit javascript leichter tust kannst du natürlich auch den weg von mattik verwenden!
  • Danke für eure Antworten, genau an die Sachen habe ich auch gedacht - hatte gehofft, dass es eine "elegantere" Methode gibt.
    Ich denke ich werde über einen Parsing Funktion, die dann auf einem Server laufen wird, gehen und es dem App dann einfacher machen die Daten auszulesen.
    Die Möglichkeit dann anpassungsfähig zu sein (einfach den parser auf dem Server ändern) ist schon wichtig... um gewährleisten zu können, dass es läuft 8)