2010-12-06 17 views
8

Web siteminJavascript'teki XML düğümlerinde nasıl geçebilirim?

for(var user in xmlhttp.getElementsByTagName('user')){ //fix this row to me 
    //Create a new row for tbody 
    var tr = document.createElement('tr'); 
    document.getElementById('tbody').appendChild(tr); 
} 

bu

<websites_name> 
<user>...</user> 
<user>...</user> 
. 
. 
. 
</websites_name> 

GÜNCELLEME gibi xml bakmak

xmlhttp = new XMLHttpRequest(); 
xmlhttp.open("GET","some URL",true); 
xmlhttp.send(); 
var xmlDoc = xmlhttp.responseXML; 
var root = xmlDoc.getElementsByTagName('websites_name'); 
for(var i=0, i<root[0].childNodes.length,i++){ 
    //Create a new row for tbody 
    var tr = document.createElement('tr'); 
    document.getElementById('tbody').appendChild(tr); 
} 

cevap

12

One üzerinde html tablo tr oluşturmak için kullanıcıların oluşur XML düğümleri arasında döngü deneyin XML'yi ayrıştırmayla ilgili en az sezgisel şey, öğe etiketlerinin içindeki metnin aslında içine girmeniz gereken bir düğüm olmasıdır.

<user>text data</user> olduğunu varsayarak, metin öğelerinizi ayıklamak için yalnızca kullanıcı öğesinin metin düğümüne geçmek zorunda kalmazsınız, ancak DOM'da bu verileri görmesi için bir veri düğümü oluşturmanız gerekir. nodeValue ve ve createtextnode Bkz:.

Ben satırda yatıyor sorunu "var kökü = xmlDoc.getElementsByTagName (" websites_name ") bulduktan
// get XML 
var xml = xhr.responseXML; 

// get users 
var users = xml.getElementsByTagName("user"); 
for (var i = 0; i < users.length; i++) { 
    var user = users[i].firstChild.nodeValue; 
    var tr = document.createElement("tr"); 
    var td = document.createElement("td"); 
    var textNode = document.createTextNode(user); 
    td.appendChild(textNode);   
    tr.appendChild(td);   
    document.getElementById("tbody").appendChild(tr); 
} 
+0

;" Ben yanlış yaptım? Güncellemeye bak. Çözümünüz, textNode haricinde aynıdır. Aslında kullanıcı – einstein

+0

altında mor XML düğümleri tamam ne sorun olduğunu biliyorum. Çok küçük. XML'imi oluşturan komut dosyaları, satır "başlık (" Content-type: text/xml "); – einstein

+0

harika - evet, bu içerik türü şeyler ajax ile çok önemlidir. Bu şeyler jQuery gibi kütüphanelerle çok daha kolay ... –

İlgili konular