ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
1060
1060
EMPFEHLEN
-
Hallo,
ich bastel an einem Liveticker. Per AJAX sollen alle x-Minuten aktuelle Daten aus der DB geholt und in eine XML-Datei abgelegt werden.
In JS sollen die Inhalte der XML-Datei dann ausgelesen werden und in einem div-Container angezeigt werden.
Hier der relevante Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
function liveticker_ergebnisse() { var ergebnis = '<p class=\'fetter\'> Alle Spiele </p>'; if(xmlHttp.readyState == 4) { if(xmlHttp.status == 200) { var dokuXML = xmlHttp.responseXML; for(var i=0; i<dokuXML.getElementsByTagName("eineNachricht").length; i++) { var ele = dokuXML.getElementsByTagName("eineNachricht")[i]; var spnr = ele.getElementsByTagName("spnr")[0].cildNodes[0].nodeValue; var minute = ele.getElementsByTagName("spielminute")[0].cildNodes[0].nodeValue; var text = ele.getElementsByTagName("text")[0].cildNodes[0].nodeValue; var heim = ele.getElementsByTagName("heimteam")[0].cildNodes[0].nodeValue; var gast = ele.getElementsByTagName("gastteam")[0].cildNodes[0].nodeValue; ergebnis += "<table width='100%'>"; ergebnis += "<tr><td>"; ergebnis += "(Spiel: " + spnr + ") " + heim + " - " + gast + "</td></tr>"; ergebnis += "<tr><td> " + minute + " </td></tr>"; ergebnis += "<tr><td> " + text + " <hr/></tr></td>"; ergebnis += "</table>"; } } else { alert("Serverfehler beim Abrufen der XML Daten"); } } document.getElementById('content_mitte').innerHTML = ergebnis; }
Leider sagt die JS Konsole das dokuXML keine Properties habe. Das verstehe ich aber nicht. Bewege ich mich da irgendwie Falsch im XML-Baum, oder sind die getElements-Methoden falsch?
Hat da jemand ähnliche Erfahrungen und kann mir weiter helfen?
-
Hallo...
resonseXML erhältst du nur, wenn das angeforderte Dokument wirklich ein astreines
fehlerfreies XML-Dokument ist.
Rufe die XML-Datei mal mit dem IE oder FF direkt auf...bekommst du da eine Fehlermeldung zu sehen?
-
ja die XML-Datei ist fehlerlos.
root ist <wmnews>
darin sind <alleNachrichten>
und hierin beliebeig viele von <eineNachricht>
Da sind dann die Infos zu der News drin:
<spnr><spielminute><text><heimteam><gastteam>
Eben diese Infos will ich mir abholen. Aber irgendwie bekomme ich die nicht :S
Es gibt ja noch "responeText" aber das dann bißchen unschön.
-
Zeige bitte mal die XML-Datei
-
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
<?xml version="1.0"?> <wmnews> <alleNachrichten> <eineNachricht> <spnr>02</spnr> <spielminute>01. Minute</spielminute> <text>Anstoss!</text> <heimteam>polen</heimteam> <gastteam>ecuador</gastteam> </eineNachricht> <eineNachricht> <spnr>02</spnr> <spielminute>02. minute</spielminute> <text>grosse chance</text> <heimteam>polen</heimteam> <gastteam>ecuador</gastteam> </eineNachricht> <eineNachricht> <spnr>01</spnr> <spielminute>01. minute</spielminute> <text>auch hier gehts los!</text> <heimteam>deutschland</heimteam> <gastteam>italien</gastteam> </eineNachricht> <eineNachricht> <spnr>01</spnr> <spielminute>04. minute</spielminute> <text>ecke!</tor> <heimteam>deutschland</heimteam> <gastteam>italien</gastteam> </eineNachricht> <eineNachricht> <spnr>01</spnr> <spielminute>10.minute</spielminute> <text>lalalaaaaa</text> <heimteam>deutschland</heimteam> <gastteam>italien</gastteam> </eineNachricht> </alleNachrichten> </wmnews>
-
Naja...ganz fehlerfrei ist sie dann doch nicht

Code :1 2 3 4
XML-Verarbeitungsfehler: Nicht übereinstimmendes Tag. Erwartet: </text>. Adresse: http://localhost/wm.xml Zeile Nr. 28, Spalte 17: <text>ecke![B]</tor>[/B] ----------------------------------------^
-
ups, ja die Stelle habe ich von hand eingefügt. Habe ich mich wohl verschrieben.
Sonst ist sie aber korrekt, mittels der php-DOM Befehle erstellt.
-
Du hast auf jeden Fall noch ein paar Fehler drinnen...
...das sollte childNodes heissen.Code :1
cildNodes
-
oh ja. natürlich...
Nun kommt es immerhin schon so weit dass sich der apache aufhängt, sobald die Serverabfrage beginnt. Da ist ganzschön der Wurm drin. Hart kodiertes kriege ich immerhin in das <div> rein. Die XML-Daten nicht
-
Hallo,
wird die XML-Datei auch mit dem korrekten Content-type ausgeliefert (z.B. text/xml)?
Grüße,
Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
also im Header steht nur das:
<?xml version="1.0"?>
Danach fülle ich die XML-Datei mit Inhalten aus der DB.
aber das könnte es sein. Schließlich liefert dass xmlResponse ja null zurück wenn die Server-Antwort nicht vom korrekten Typ ist.
Dann mach ich mich mal auf die Suche nach den passenden php-Methoden um die XML-Datei sauberst auszugeben.
-
hi,
hatte auch nen Problem damit. Setze mal per header-Befehl den Content-type auf text/xml danach ging es bei mir. gib mal per alert dokuXML aus. Bei mir war das vorher dann immer undefined oder so oder NULL.
flooo
-
hi leute,
das Ganze funktioniert nun perfekt. Naja fast perfekt. Das obige Problem habe ich mit neueren PHP-DOM Befehlen gelöst.
Nun habe ich das perfekte Ergebnis im FF. Aber der IE zeigt das Ergebnis nicht an. Liegt das ausschließlich an der Sicherheitsstufe im Browser? Oder woran könnte das noch liegen?
also ich habe ja den Verdacht, dass der IE das XMLHttpRequest-Objekt nicht erzeugen kann. Obwohl der Code richtig erscheint:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
var xmlHttp = null; var intervall_id = ''; function liveticker_objekt() { if (xmlHttp == null) { if (window.ActiveXObject) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { } } } else if (window.XMLHttpRequest) { try { xmlHttp = new XMLHttpRequest(); } catch (e) { } } } }
-
Naja...es könnte schon an der Sicherheitsstufe liegen, da ja ActiveX erforderlich ist(welches allerdings standardmässig aktiviert ist).
Mach doch mal an diversen Schlüsselstellen alerts hinein, um zu sehen, wo der IE hängenbleibt.
Achso...JS-Fehlermeldungen gibts keine, nehme ich mal an, oder?
-
Nein, JS geht soweit ohne Fehler durch.
Bei einem 'alert' an den Stellen der Initialisierung des XMLHttpRequest-Objects, habe ich sehen können, das der IE das Objekt schlicht nicht erzeugt.
Habe danach mal die Erstellung von ActiveX-Objekten zu jederzeit erlaubt, was aber auch nicht ****te.
Und zum Schluss habe ich die Beta vom IE7 getestet, wo es auch nicht ging. Schon sehr merkwürdig...
Ähnliche Themen
-
Problem mit $JQuery.ajax(...) POST Daten werden nicht gesendet
Von marcel_t im Forum Javascript & AjaxAntworten: 8Letzter Beitrag: 03.03.10, 10:19 -
Problem beim Einlesen von Textdatei mit UTF-8
Von DarthShader im Forum JavaAntworten: 7Letzter Beitrag: 26.03.08, 08:51 -
Problem beim TXT-Datei einlesen
Von freek0815 im Forum JavaAntworten: 2Letzter Beitrag: 10.09.07, 08:51 -
Problem mit Daten einlesen
Von Blecus im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 10.11.06, 15:58 -
Problem beim Einlesen von Exceldateien
Von aKraus im Forum ASPAntworten: 0Letzter Beitrag: 26.10.06, 14:39





Zitieren

Login





