tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
1060
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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?
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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?
     

  3. #3
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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.
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zeige bitte mal die XML-Datei
     

  5. #5
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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>
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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]
    ----------------------------------------^
     

  7. #7
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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.
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du hast auf jeden Fall noch ein paar Fehler drinnen...
    Code :
    1
    
    cildNodes
    ...das sollte childNodes heissen.
     

  9. #9
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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
     

  10. #10
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    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

  11. #11
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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.
     

  12. #12
    flooo flooo ist offline Mitglied Brokat
    Registriert seit
    May 2004
    Ort
    Berlin
    Beiträge
    283
    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
     

  13. #13
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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)
                {
                }
            }
        }
    }
     

  14. #14
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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?
     

  15. #15
    valkuere valkuere ist offline Mitglied Silber
    Registriert seit
    Jan 2006
    Ort
    Hannoi (NDS)
    Beiträge
    60
    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

  1. Problem mit $JQuery.ajax(...) POST Daten werden nicht gesendet
    Von marcel_t im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 03.03.10, 10:19
  2. Problem beim Einlesen von Textdatei mit UTF-8
    Von DarthShader im Forum Java
    Antworten: 7
    Letzter Beitrag: 26.03.08, 08:51
  3. Problem beim TXT-Datei einlesen
    Von freek0815 im Forum Java
    Antworten: 2
    Letzter Beitrag: 10.09.07, 08:51
  4. Problem mit Daten einlesen
    Von Blecus im Forum Visual Basic 6.0
    Antworten: 5
    Letzter Beitrag: 10.11.06, 15:58
  5. Problem beim Einlesen von Exceldateien
    Von aKraus im Forum ASP
    Antworten: 0
    Letzter Beitrag: 26.10.06, 14:39