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.

Page: 1 2 3 4 5

ZDNet.de Redaktion

Recent Posts

Google: Passkeys schützen mehr als 400 Millionen Google-Konten

Die Passwort-Alternative Passkeys überholt Einmalpasswörter bei der Zwei-Faktor-Authentifizierung. Auch Microsoft setzt sich aktiv für die…

5 Tagen ago

Infostealer: 53 Prozent der Angriffe treffen Unternehmensrechner

Der Anteil steigt seit 2020 um 34 Prozentpunkte. Allein 2023 erfasst Kaspersky rund 10 Millionen…

5 Tagen ago

Salesforce: Mit Einstein GPT zurück auf die Überholspur?

Salesforce forciert den Ausbau seiner Industry Clouds. Mit ihrem Prozesswissen könnten deutsche IT-Dienstleister davon profitieren.

6 Tagen ago

Neue Backdoor: Bedrohung durch Malvertising-Kampagne mit MadMxShell

Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.

1 Woche ago

BSI-Studie: Wie KI die Bedrohungslandschaft verändert

Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.

1 Woche ago

KI-Wandel: Welche Berufe sich am stärksten verändern

Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…

1 Woche ago