2013-07-18 1 views
0

у меня есть RegistrationResponseMessages.xml:как прочитать файл XML с большим количеством узлов с JavaScript

<messages> 
    <error> 
    <code id="501">Couldn't retrieve the HTML document because of server-configuration problems.</code> 
    <code id="502">Server busy, site may have moved ,or you lost your dial-up Internet connection.</code> 
    </error> 
    <success></success> 
</messages> 

пытается прочитать содержимое кода идентификатора 501 и 502 с JavaScript, но он не работает.

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp = new XMLHttpRequest(); 
     } 
     else {// code for IE6, IE5 
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     xmlhttp.open("GET", "RegistrationResponseMessages.xml", false); 
     xmlhttp.send(); 
     xmlDoc = xmlhttp.responseXML; 

     document.getElementById("errorCode403").innerHTML = getElementsByTagName(501)[0].childNodes[0].nodeValue); 

отображая его здесь:

<label id="errorCode403" style="font-weight: 600; color: red;">give some error</label> 

, что моя проблема?

+0

получение иногда ошибка: getElementsByTagName не определен –

ответ

1

Это Аякс, вы должны ждать, пока данные, которые должны быть возвращено, то вы должны получить доступ к нему правильному пути:

var xmlhttp; 

if (window.XMLHttpRequest) { 
    xmlhttp = new XMLHttpRequest(); 
} else { 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onload = function() { 
    var xmlDoc = this.responseXML, 
     value = xmlDoc.getElementsByTagName('501')[0].childNodes[0].nodeValue; 
    document.getElementById("errorCode403").innerHTML = value; 
} 

xmlhttp.open("GET", "RegistrationResponseMessages.xml", false); 
xmlhttp.send(); 

Не уверен, обход в XML, так как 501 звучит странно название тэга ?

EDIT:

, чтобы получить список из идентификаторов вы сделаете это внутри обработчика OnLoad:

xmlhttp.onload = function() { 
    var xmlDoc = this.responseXML, 

    var codes = xmlDoc.getElementsByTagName('code'); 
    var array = []; 

    for (var i=0; i<codes.length; i++) { 
     array.push(codes[i].id); 
    } 

    console.log(array); 
} 
+0

ли ваш код AJAX? я могу использовать его как javascript? –

+0

Нет, ваш код является ajax, вот что такое XMLHttpRequest, ** A ** синхронно ** J ** avascript ** A ** nd ** X ** ML – adeneo

+0

Мне нужно для этого кода мира что-то еще для импорта для AJAX работает на моей странице? У меня есть простой html с javascript внутри –

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

  • Нет связанных вопросов^_^