Zugriff auf den DOM Baum einer HTML oder XML Datei mittels XPath nehmen.

03Dez10

Es ist nicht gänzlich problemlos, in Cocoa mit den Webdiensten zu arbeiten. Verbindungen zu MySQL und erst recht das parsen von HTML Dateien ist zumindest mit NSScanner keine triviale Aufgabe – von HTML Seiten die nicht der XML Norm entsprechen ganz zu schweigen.

XPathQuery kann das.

Bei Matt Gallagher’s ‚Cocoa with love‘ bin ich auf einen empfehlenswerten Ansatz gestoßen: libxml2.

In seinem Post stellt er seine Klasse ‚XPathQuerry‘ vor, welche es ermöglicht, eine XPath-Anfrage abzusetzen und ein Array mit Dictionaries der gewünschten DOM-Struktur zurückliefert.

Es handelt sich um eine C-Klasse die auch auf dem IPhone nativ vorhanden ist. Sie muss allerdings eingebunden werden und das möchte ich kurz erläutern:

Hat man die Klassendateien in seinen Arbeitsbereich kopiert, sind noch zwei Einstellungen in den Buildoptionen (Project->Edit Project Settings im Tab ‚Build‘) des Projektes zu machen:

  1. Im Abschnitt „Linking“ gibt es das Feld „Other Linker Flags“. Ein Doppelklick auf das Value-Feld rechts lässt einen weitere Flags hinzufügen. Hier muss -lxml2 eingetragen werden.
  2. Im Abschnitt „Search Paths“ muss dann noch dem „Header Search Paths“ ein Eintrag mit dem Wert $(SDKROOT)/usr/include/libxml2 hinzugefügt werden, die Option „Recursive“ kann dabei vernachlässigt werden.

Das ist alles, damit kann die Klasse verwendet werden.

Advertisements


No Responses Yet to “Zugriff auf den DOM Baum einer HTML oder XML Datei mittels XPath nehmen.”

  1. Schreibe einen Kommentar

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s