Avatar billede mikmakmuk Nybegynder
15. november 2007 - 15:48 Der er 18 kommentarer

AJAX hente en værdi fra XML

Hej Eksperter,

Hvordan er det lige jeg fisker en værdi ud af noget xml. Jeg har prøvet det her

if(xmlHttp.readyState==4)
        {
        var xmlDoc=xmlHttp.responseXML.documentElement;       
    alert(xmlDoc.getElementsByTagName("MINVÆRDI")[0];
        }
      }

Det skal siges at jeg kommer til readyState==4 og MINVÆRDI vil altid kun optræde engang.
Avatar billede soerenlyn Nybegynder
15. november 2007 - 17:42 #1
Jeg kan hente xml med

  req.responseXML.getElementsByTagName("blabla")[0]

hvor
  req=new XMLHttpRequest();
,
  req=new ActiveXObject("Msxml2.XMLHTTP")
eller
  req=new ActiveXObject("Microsoft.XMLHTTP")

:)
Avatar billede mikmakmuk Nybegynder
15. november 2007 - 18:05 #2
det vil jeg da prøve :-)
Avatar billede soerenlyn Nybegynder
15. november 2007 - 18:13 #3
Dette er selvfølgelig kun en lille del af min ajax-kode .. :)
Avatar billede soerenlyn Nybegynder
15. november 2007 - 18:13 #4
Men min req er nok bare det samme som din xmlHttp.
Avatar billede hells Nybegynder
15. november 2007 - 18:18 #5
Tja, hvis det der vitterligt er det kode, du bruger, skulle du da tage at slutte parentesen ved kaldet til alert-funktionen:
alert(xmlDoc.getElementsByTagName("MINVÆRDI")[0]);
Avatar billede hells Nybegynder
15. november 2007 - 18:20 #6
Ydermere får du nok mere ud af at kalde værdien af tekstnoden i elementet:
alert(xmlDoc.getElementsByTagName("MINVÆRDI")[0].childNodes[0].nodeValue);
Avatar billede mikmakmuk Nybegynder
16. november 2007 - 09:01 #7
jeg kan altså ikke få det til at virke. Får null

alert(xmlHttp.responseXML.getElementsByTagName("blabla")[0]);
Avatar billede mikmakmuk Nybegynder
16. november 2007 - 09:31 #8
Her er hvad jeg i princippet får, hvor jeg så vil pille blabla ud

<?xml version="1.0" encoding="iso-8859-1">
<xml>
<bla>1</bla>
<blabla>enellerandenværdi</blabla>
</xml>
Avatar billede mikmakmuk Nybegynder
16. november 2007 - 11:31 #9
Jeg er ved at være desperat :-(
Avatar billede mikmakmuk Nybegynder
16. november 2007 - 11:45 #10
Hvad er der galt med det her???

var xmlDoc=xmlHttp.responseXML.documentElement; 
document.getElementById("ticket").innerHTML=xmlDoc.getElementsByTagName("blabla")[0].childNodes[0].nodeValue;


xmlHttp.responseXML has no properties
Avatar billede mikmakmuk Nybegynder
16. november 2007 - 11:50 #11
Det hele ser sådan ud

function ajaxFunction(a,b)

    var xmlHttp;
 
  try
  {    // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
  catch (e)
    {   
  // Internet Explorer
 
  try
    {     
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
      {     
      try
    {       
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {       
    alert("Your browser does not support AJAX!");
    return false;
    }     
    }   
    }
   
    xmlHttp.onreadystatechange=function()
   
      {
     
      if(xmlHttp.readyState==4)
        {
        var xmlDoc=xmlHttp.responseXML.documentElement;
        document.getElementById("ticket").innerHTML=xmlDoc.getElementsByTagName("BLABLA")[0].childNodes[0].nodeValue;
     
     
        }
      }
   
    xmlHttp.open("GET","URLEN TIL DER HVOR XMLEN ER",true);
    xmlHttp.send(null); 
    }
Avatar billede soerenlyn Nybegynder
16. november 2007 - 13:05 #12
Prøv dette her:

function ajaxFunction(a,b){
    var xmlHttp;
    try{xmlHttp=new XMLHttpRequest();}
    catch (e){
        try{xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
        catch (e){
            try{xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
            catch (e){alert("Your browser does not support AJAX!");return false;}
        }
    }

    xmlHttp.onreadystatechange=function(){
        if(xmlHttp.readyState==4&&xmlHttp.status==200){
            alert(xmlHttp.responseXML.getElementsByTagName("blabla")[0].nodeValue);
              }
    }
    xmlHttp.open("GET","URLEN TIL DER HVOR XMLEN ER",true);
    xmlHttp.send(null); 
}

Jeg har tilføjet xmlHttp.status = 200. Både readyState=4 og status=200 skal være opfyldt før objectet er klart til at læses fra, men spørg mig ikke helt præcist hvad de gør :) Søg evt. google.

Dette burde virke :)
Avatar billede soerenlyn Nybegynder
16. november 2007 - 13:06 #13
Derudover burde du bruge POST i stedet for GET. Dette er dog lidt mere besværligt, så det kommer an på hvor meget du vil gøre ud af at det er rigtigt :)
Avatar billede mikmakmuk Nybegynder
19. november 2007 - 11:32 #14
Hmmmmmmm. Jeg har fundet fejlen. Mit xml dokument startede med et linieskift.
Avatar billede mikmakmuk Nybegynder
21. november 2007 - 14:54 #15
Tak for hjælpen
Avatar billede soerenlyn Nybegynder
21. november 2007 - 21:17 #16
hehe, det problem havde jeg også et tidspunkt - det tager lidt tid før man opdager den fejl :P
Avatar billede mikmakmuk Nybegynder
02. december 2007 - 10:52 #17
ja det kan man sige
Avatar billede soerenlyn Nybegynder
02. december 2007 - 13:09 #18
Lukker du? Du kan bare tage pointene selv hvis du ikke memer du har fået hjælp til at løse det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester