Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[ajax] xml uitlezen in FF

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met de foutafhandeling van een script dat xml genereerd. Wanneer er iets fout gaat word het volgende xml bestandje teruggegeven:

code:
1
2
3
4
5
6
7
<?xml version="1.0" ?>
 <!DOCTYPE error [
  <!ELEMENT error (#PCDATA)>
 ]>
<error>
foutmelding
</error>


Dit is de javascript die hem moet verwerken(dit is nog enkel om te kijken wat de browser precies doet, als hij doet wat ik wil dat hij doet ga ik kijken of de tagname error is.):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    function get_file(file,functie)
    {
     var xmlDoc;
     if (document.implementation && document.implementation.createDocument)
     {
        xmlDoc = document.implementation.createDocument("", "doc", null);
        xmlDoc.onload =  functie;
     }
     else if (window.ActiveXObject)
     {
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.onreadystatechange = function () 
      {
        if (xmlDoc.readyState == 4)
         functie;
      } 
     }
     xmlDoc.load(file);
    }
    function check_updates(xmlDoc)
    {
     alert(xmlDoc.firstChild.tagName);
    }


Dit stukje html roept alles aan:
code:
1
2
<script type="text/javascript" src="javascript_test.js"></script>
<button onclick="get_file('check_updates.php',check_updates())" name=check >check</button>


IE7 geeft terug: error, FF geeft terug: doc , opera geeft terug: undefined

Heeft iemand een idee waaraan dat kan liggen?

Verwijderd

Ik denk dat je er verstandiger aan doet een library te gebruiken: http://dev.abiss.gr/sarissa/

Overigens zal blijken dat xml parsen aan de client kant een behoorlijke pijn in je achterste zal zijn... Waarom gebruik je php niet om de xml te parsen en de info terug te sturen (als json, om maar eens wat te noemen)?

  • Borizz
  • Registratie: Maart 2005
  • Laatst online: 24-09 20:59
Misschien kan je beter een XMLHttpRequest gebruiken om het xml document op te halen:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
xmlHttpReq = new XMLHttpRequest();
xmlHttpReq.open('POST', file, true);

xmlHttpReq.onreadystatechange = function() {

    if (xmlHttpReq.readyState == 4) {
        if (xmlHttpReq.status == 200) {     // status 200 betekent dat de pagina goed ontvangen is
                xmlHttpReq.responseXML; // hier heb je je XML document
        }
        else {
            // Pagina is niet goed ontvangen, response afhandelen;
        }
    }
}
xmlHttpReq.send(data);

If I can't fix it, it ain't broken.


Verwijderd

En als je dan die hele handel hebt gedownload neem dan de gecomprimeerde versie hier vandaan:
sarissa-full-0.9.9.3\gr\abiss\js\sarissa\sarissa-compressed.js

Je krijgt namelijk een hele zooi aan spul in die zip... :/

En dan iets als:
JavaScript:
1
2
3
4
5
6
7
8
<script type="text/javascript" src="sarissa.js"></script>
<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();  
xmlhttp.open("GET", "tweak.xml", false);
xmlhttp.send('');  
var xmldoc = xmlhttp.responseXML;
alert( xmldoc.getElementsByTagName('error')[0].firstChild.nodeValue );  
</script>


Waarbij ik die gecomprimeerde versie een gewone naam heb gegeven en je xml output even als xml heb geladen (in plaats van een php script wat hetzelfde terug geeft)... Werkt hier in IE6, FF2 en Opera 9.dinges :P

[ Voor 2% gewijzigd door Verwijderd op 06-04-2008 22:30 . Reden: link erbij voor de niet lezers ;) ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 19:57

crisp

Devver

Pixelated

Intentionally left blank


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Is Sarissa aan te raden? Ik dacht dat de ontwikkeling daarvan een hele tijd stil heeft gelegen?

Ik zou sowieso eerder JQuery gebruiken. Iets kleiner dan Sarissa (15k), maar er zitten nog wat extra features in voor je DOM en zo.

Fat Pizza's pizza, they are big and they are cheezy


Verwijderd

JKVA schreef op maandag 07 april 2008 @ 08:55:
Is Sarissa aan te raden? Ik dacht dat de ontwikkeling daarvan een hele tijd stil heeft gelegen?

Ik zou sowieso eerder JQuery gebruiken. Iets kleiner dan Sarissa (15k), maar er zitten nog wat extra features in voor je DOM en zo.
Hier: http://sourceforge.net/projects/sarissa/ zie ik dat ie nog recent (20 feb) is bijgewerkt...
Pagina: 1