XML-Scripting mit E4X

Als Nächstes geht es um eine Beispielanwendung, bei der XMLBeans und E4X zusammenspielen.

Die alles entscheidende Frage lautet: „Was gibt es Neues im Fernsehen?“ Hierzu kann man auf das Fernsehprogramm von Bleb.org zurückgreifen, welches im XML-Format vorliegt, und nach neuen Serien Ausschau halten. Allerdings hat Bleb.org verständlicherweise strenge Regeln, was das Anzapfen ihrer XML-Listen betrifft. Man sollte diese höchstens alle zwei Sekunden abrufen. Die hier vorgestellte Anwendung soll das Herumexperimentieren mit Bleb-Listen ermöglichen, aber auf die Einhaltung der Spielregeln achten. Hier kommt das TV-Digger-Beispiel.

Die Anwendung besteht aus drei Elementen: der DigTV-Klasse, welche verantwortlich ist für die Integration der Rhino/Javascript-Engine, der GetTV-Klasse, welche für das Abrufen der XML-Dokumente von den entfernten Webseiten sorgt, und schließlich der Scriptdatei digscript.js. Zuerst ein Blick auf dieses Script, besonders auf die Funktion processUpdate:


Diese Funktion übernimmt ein Dokument als Parameter. Hier sollte dies ein String oder ein XMLObject sein. In jedem Fall bereitet die Funktion schedule=XML(document) es für die Verarbeitung per E4X vor.


Die nächste Zeile hält nach neuen Fernsehserien Ausschau, wobei auf die Funktionen von E4X zum Stringvergleich zurückgegriffen wird. „schedule..programme“ bedeutet, dass alle programme-Elemente ausgewählt werden. Danach folgt ein Filter für diese Auswahl. Der Ausdruck muss wahr sein, falls das programme-Element ein desc-Element enthält, auf das der reguläre Ausdruck zutrifft, oder falls es ein subtitle-Element enthält, auf das derselbe reguläre Ausdruck zutrifft. Der Rückgabewert ist ein Array aller passenden programme-Elemente.

Da damit aber auch die enthaltenen Elementinformationen zu Sender und Datum verloren gegangen sind, muss man den zurückgegebenen Programmen entsprechende Attribute hinzufügen.


Damit sind die Angaben vollständig und man kann sie einer vorhandenen XML-Variable hinzufügen.


Der Zuordnungsoperator „+=“ bewirkt, dass das Element am Ende der Liste angefügt wird. Falls es noch kein programme-Element gibt, wird das Fragment einfach an das finaldoc-Dokument angefügt. Gibt es bereits programme-Elemente, wird es nach dem letzten angefügt.

Das ist das Kernstück des Scripts. Die Variable finaldoc wird global wie folgt definiert:


Es gibt eine reportNow-Funktion, welche das Dokument einfach ausgibt, und eine getChannels-Funktion, welche ein Array aller Sendernamen zur Weiterverarbeitung zurückgibt. Wie man sieht, gibt es im ganzen Script nur Funktionen. Um den Aufruf des Scripts kümmert sich die DigTV-Klasse.

Themenseiten: Anwendungsentwicklung, Software, XML

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu XML-Scripting mit E4X

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *