JS ohne DOM

  • Themenstarter Themenstarter FB55
  • Beginndatum Beginndatum
F

FB55

Hallo,

ich beschäftige mich zur Zeit mit der YQL (Yahoo! Query Language, siehe http://developer.yahoo.com/yql/ ). Diese ermöglicht es, auf Querys einfachere JS-Scripts anzuwenden. Leider wird unser geliebtes DOM jedoch nicht unterstützt. Sprich: replace() funktioniert, getElementsByTagName() jedoch nicht.

Mein Ziel ist es, eine Website per Query zu bekommen, sie auf die wichtigen Teile abzuspecken und schließlich an meinen Java-Server, der den Request gesendet hat, zurückzugeben. Dieser läuft auf der Google App Engine, der zur Verfügung stehende Traffic ist also begrenzt, Yahoo erlaubt über die YQL bis zu 100.000 Querys pro Tag, auf diese Weise könnte ich Traffic sowie Rechenleistung sparen. Natürlich könnte ich das Script auch in Java schreiben - neben dem deutlich größeren Aufwand sind aber eben genannte Punkte auch unerwünscht (Traffic und Rechenleistung). Deshalb suche ich jetzt eine Möglichkeit, in einer Umgebung ohne DOM die entsprechenden APIs dennoch zu verwenden. Was ich brauche: getElementsByTagName(), parentNode(), removeChild() (die Logik des Scripts steht schon fertig auf meinem Block (ja, manuelles Papier), ich weiß genau, was ich machen möchte, nur momentan nicht, wie).

Es wäre klasse, wenn jemand eine entsprechende Libary kennen würde und mir einen Link bereitstellen könnte.
 
Antworte ich mir mal selbst: ich habe jetzt herausgefunden, dass es mit E4X (ECMAScript für XML) eine in YQL implementierte Schnittstelle gibt für XML. getElementsByTagName() damit zu implementieren, ist ein Kinderspiel, nur habe ich keine Ahnung, wie ich für die so bekommenen Nodes die "Eltern" finde.

Nur kurz als Erklärung: mit E4X komme ich so zu den Nodes eines bestimmten Tags (zur Vereinfachung einfach "node" genannt):

PHP:
var document = new XML(response);
document..node;

Zurück bekommt man einen Array mit allen Elementen des Tags "node" und deren jeweiligen Inhalt. Besteht eine Möglichkeit, an die Parents ran zu kommen?

edit: geklärt. Die Funktion heißt "parent()". Wie einfach das Leben doch sein kann...

edit 2: Ich scheitere momentan noch an einem Problem (Thema sind RegExps), wenn ich das gelöst habe, dann wird alles gut ;) .
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück