Windows Gadget - String auslesen mit JavaScript
Ich habe ein paar Probleme bei dem Versuch mit JavaScript Strings aus einer xml Seite auszulesen.
Nachdem ich die letzten 2 Tage kein Stück weiter gekommen bin, habe ich mir gedacht, dass mir hier eventuell jemand helfen kann.
Hallo,
ich habe ein paar kleine Probleme die mich zurzeit ein wenig verzweifeln lassen.
Meine Aufgabe ist es ein Windowsgadget zu schreiben, welches sich von einer xyz.xml Seite 2 bestimmte Werte holt.
Das grundsätzliche Problem hierbei ist schon einmal, dass ich keine Ahnung von JavaScript habe. :S
Ich habe mich nun die letzten 2 Tage durchs Internet und durch Bücher gewühlt, habe auch ansatzweise herausgefunden wie ich dies umsetzen kann, allerdings funktioniert das Ganze nicht so wie ich es gerne hätte.
Grundsätzlich habe ich erst einmal versucht, aus der Datei, in der ich mich befinde (gadget.html), einen String auslesen zu können. (dies hab ich getan da ich noch keine Idee hab wie ich später auf eine externe Datei zugreifen kann)
Die „Lösung“ an der ich mich gerade versuche, ist den gesamten <body> der Seite in einen String zu laden und dann nach den gewollten Begriffen zu suchen. (die xml Datei aus der ich es später auslesen muss scheint leider keinen Body zu haben…)
Jedenfalls benutze ich hierzu jetzt folgenden code:
Was ich mir eigentlich hierbei versprochen habe war, dass er mir die Zahlen 1234567 ausgibt. Was er ausgibt ist allerdings: “lu3_releasedate1234567“ (Klar er fängt halt vor dem Suchbegriff an und nicht dahinter)
Wenn ich nun +15 Zeichen rechne habe ich am Ende die richtige Ausgabe, aber wie ich nun weiter machen kann, weiß ich nicht.
Wenn ich es schaffe die externe Seite in einen String zu lesen, hätte ich es ja fast geschafft. Probleme beim Suchen ergaben allerdings einige Sonderzeichen wie „< >“.
Hier noch einmal meine Aufgabenstellung etwas genauer:
xml Datei (hier steht einfach nur als Text drin)
Dies sind die Werte die ich ausgeben soll. Der Rest der Datei besteht nur aus anderen solchen Werten.
Das Gadget soll nun einfach alle paar Minuten/Stunden (Je nach Einstellung) oder per Button diese Werte abfragen.
Ich hoffe hier kann mir jemand weiter helfen, wie ich dies realisieren kann. Ich habe auch noch weitere Probleme, z.B.: wenn ich das JavaScript auslagere, wird die Gadget Seite neu geladen und die Formatierung (Hintergrund etc.) verschwindet. Aber die Funktion des Gadgets ans Laufen zu bringen hat erst einmal Vorrang.
EDIT:
Ok,
Ich hab das Auslesen der xml Datei hinbekommen.
Auf die Lösung gekommen bin ich hier
Bei mir sah das ganze dann so aus :
Nachdem ich die letzten 2 Tage kein Stück weiter gekommen bin, habe ich mir gedacht, dass mir hier eventuell jemand helfen kann.
Hallo,
ich habe ein paar kleine Probleme die mich zurzeit ein wenig verzweifeln lassen.
Meine Aufgabe ist es ein Windowsgadget zu schreiben, welches sich von einer xyz.xml Seite 2 bestimmte Werte holt.
Das grundsätzliche Problem hierbei ist schon einmal, dass ich keine Ahnung von JavaScript habe. :S
Ich habe mich nun die letzten 2 Tage durchs Internet und durch Bücher gewühlt, habe auch ansatzweise herausgefunden wie ich dies umsetzen kann, allerdings funktioniert das Ganze nicht so wie ich es gerne hätte.
Grundsätzlich habe ich erst einmal versucht, aus der Datei, in der ich mich befinde (gadget.html), einen String auslesen zu können. (dies hab ich getan da ich noch keine Idee hab wie ich später auf eine externe Datei zugreifen kann)
Die „Lösung“ an der ich mich gerade versuche, ist den gesamten <body> der Seite in einen String zu laden und dann nach den gewollten Begriffen zu suchen. (die xml Datei aus der ich es später auslesen muss scheint leider keinen Body zu haben…)
Jedenfalls benutze ich hierzu jetzt folgenden code:
<body class="gadgetbody" onload="initGadget()">
<g:background id="imgBackground" src="background.png">
<div id="gadgetContent">
<div id="headline">
Hallo Welt!
</div>
<img id="reload" src="Reload.png" onclick="document.write(abfrage(42))" title="Aktualisieren" />
<div id="ergebnis">
lu3_releasedate1234567/lu3_releasedate
lu3_releasetime7654321/lu3_releasetime
<script type="text/javascript">
document.write(document.getElementsByTagName("title").text);
var test = document.getElementsByTagName("body").innerHTML;
var s = 'lu3_releasedate';
var e = '/lu3_releasedate';
var start = test.indexOf(s, 0);
var end = test.indexOf(e, 0);
var Teil = test.substring(start , end);
document.write("<br>" +Teil);
</script>
</div>
</div>
</g:background>
</body>
Was ich mir eigentlich hierbei versprochen habe war, dass er mir die Zahlen 1234567 ausgibt. Was er ausgibt ist allerdings: “lu3_releasedate1234567“ (Klar er fängt halt vor dem Suchbegriff an und nicht dahinter)
Wenn ich nun +15 Zeichen rechne habe ich am Ende die richtige Ausgabe, aber wie ich nun weiter machen kann, weiß ich nicht.
Wenn ich es schaffe die externe Seite in einen String zu lesen, hätte ich es ja fast geschafft. Probleme beim Suchen ergaben allerdings einige Sonderzeichen wie „< >“.
Hier noch einmal meine Aufgabenstellung etwas genauer:
xml Datei (hier steht einfach nur als Text drin)
…
<lu3_releasedate>M/D/Y</lu3_releasedate>
<lu3_releasetime>12345642567</lu3_releasetime>
…
Das Gadget soll nun einfach alle paar Minuten/Stunden (Je nach Einstellung) oder per Button diese Werte abfragen.
Ich hoffe hier kann mir jemand weiter helfen, wie ich dies realisieren kann. Ich habe auch noch weitere Probleme, z.B.: wenn ich das JavaScript auslagere, wird die Gadget Seite neu geladen und die Formatierung (Hintergrund etc.) verschwindet. Aber die Funktion des Gadgets ans Laufen zu bringen hat erst einmal Vorrang.
EDIT:
Ok,
Ich hab das Auslesen der xml Datei hinbekommen.
Auf die Lösung gekommen bin ich hier
Bei mir sah das ganze dann so aus :
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET","xml_file.xml", false);
xmlhttp.send(null);
var releasedate = xmlhttp.responseXML.selectSingleNode("//lu3_dates/lu3_releasedate");
var date = releasedate.text
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 152907
Url: https://administrator.de/contentid/152907
Ausgedruckt am: 26.11.2024 um 00:11 Uhr