2015-03-26 3 views
0

Следующие строки ajax были записаны для извлечения некоторых данных из файла xml. Но это не удалось сделать. Нет ошибки. Однако никаких данных не отображается в окне браузера. У меня есть xampp runnign, но не могу понять, почему это происходит. Может кто-нибудь помочь мне с этой проблемой?не может извлекать данные из xml-файла

<body> 
<p id='suggestion'></p> 
<script> 
    function initialize(){ 

     var suggest=document.getElementById('suggestion'); 
     var xmlhttp,txt,elem,l; 
     if(window.XMLHttpRequest){ 
      xmlhttp=new XMLHttpRequest(); 
     }else if(window.ActiveXObject){ 
      xmlhttp=new ActiveXObject(); 
     } 
     if(xmlhttp){ 

     if(xmlhttp.readyState==4 && xmlhttp.status==200){ 

     xmlhttp.onreadystatechange=function(){ 
      elem=xmlhttp.responseXML; 
      l=elem.getElementsByTagName('cd'); 
      for(i=0;i<l.length;i++){ 
       txt+=l[i].getELementsByTagName('title')[0].firstChild.data; 
      } 

     } 
     xmlhttp.open('GET','new.xml',true); 
     xmlhttp.send(null); 

     suggest.innerHTML=txt; 
     } 
    } 
    } 
    window.onload=initialize; 
</script> 

XML файл:

<? xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<catalog> 
<cd> 
    <title>Empire Burlesque</title> 
    <artist>Bob Dylan</artist> 
</cd> 
<cd> 
    <title>We are all we need</title> 
    <artist>above and beyond</artist> 
</cd> 
</catalog> 
+0

как это связано с PHP? – Fadey

ответ

1

xmlhttp.onreadystatechange назначается в пределах условной оболочки - он не будет назначен, если xmlhttp не было уже в readyState 4 и имел статус 200 (и это маловероятно).

Попробуйте поменять местами строки

if(xmlhttp.readyState==4 && xmlhttp.status==200){ 

и

xmlhttp.onreadystatechange=function(){ 
+0

ОК, я понимаю..и поменяет them.but теперь firefox console дает ошибку «не-хорошо сформирован» –

+0

Я решил проблему, о которой я упомянул в комментарии. Между началом стрелки и словом «xml» было пространство между ними в начале мой xml file.thanks в любом случае :) –

Смежные вопросы