2011-04-28 70 views
0

您能帮助吗? AJAX noob!使用XML元素集的循环AJAX设置变量

我试图在不同的XML元素集上执行一个函数。我需要做请求返回集合,然后遍历每个集合并对它们执行一个函数。

我试图通过循环的子元素定义变量,然后将它们传递给函数。

有没有粘性?

我的JS是

function loadXMLDoc() 
{ 
var xmlhttp; 
var txt,x,i; 
var BC; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    xmlDoc=xmlhttp.responseXML; 
    txt=""; 
    BC = xmlDoc.getElementsByTagName("BusinessCard"); 
//This is the bit i am unsure about? 
    for (i=0;i<BC.length;i++) 
     { 
    var name = BC[i].getElementsByTagName("NAME").childNodes[0].nodeValue; 
    var phone = BC[i].getElementsByTagName("PHONE").childNodes[0].nodeValue; 
    var email = BC[i].getElementsByTagName("EMAIL").childNodes[0].nodeValue; 

     } 
function(BC, name, phone, email){} 

    } 
    } 
xmlhttp.open("GET","BC.xml",true); 
xmlhttp.send(); 
} 

我的XML是...

<BusinessCard> 
    <NAME>Joe Blog</NAME> 
    <PHONE>5555656</PHONE> 
    <EMAIL>[email protected]</EMAILS 
</BusinessCard> 

<BusinessCard> 
    <NAME>Jonh Smith</NAME> 
    <PHONE>6555656</PHONE> 
    <EMAIL>[email protected]</EMAILS 
</BusinessCard> 

<BusinessCard> 
    <NAME>Jurgen Voltermies</NAME> 
    <PHONE>5325656</PHONE> 
    <EMAIL>[email protected]</EMAILS 
</BusinessCard> 

任何想法,将是非常有益的?使用

回答

0

firstChild.nodeValue代替childNodes[0]

var name = BC[i].getElementsByTagName("NAME").firstChild.nodeValue;