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

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

3 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

3 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

3 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

4 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

4 Tagen ago

iPhone 15 ist bestverkauftes Smartphone im dritten Quartal

Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…

4 Tagen ago