2011-12-02 38 views
0

我拉多个XML文件存储在一个循环的var名称,但我想用变量名称使用xmlhttp请求,因为它更改每个迭代而不是重新分配每次路径即文件夹/ file.xml。所以基本上我需要使用XMLHTTP请求在XML细节拉用一个变量而不是直接的联系,即帮助:xmlhttp从变量,而不是网址 - javascript

我:

xmlhttp.open("GET","FileNames.xml",false); 

但我需要:

var names = "xmlf/file.xml"; 
xmlhttp.open("GET",names,false); 

编辑:

xmlhttp.open("GET","FileNames.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 
document.write("<table border='1'>"); 
var x=xmlDoc.getElementsByTagName("FileNames"); 
document.write("<tr>"); 
for (i=0;i<x.length;i++) 
    { 

    document.write("<td>"); 
    var names = (x[i].getElementsByTagName("File")[0].childNodes[0].nodeValue); 
// document.write(names); 

我的var名称随每个循环迭代而改变,我如何将它存储为var names = [nam ES [I],名[我],以x.length]

回答

1

如果我有这个权利,你可以做到以下几点:

var names = []; 
for (i=0;i<x.length;i++) 
{ 
    document.write("<td>"); 
    names.push(x[i].getElementsByTagName("File")[0].childNodes[0].nodeValue); 
    // your remaining code here 
} 

注意names.push,它可以让你的元素添加到names阵列。现在

,存储所有的名字,就可以循环并做你对它们的XML请求:

for (var n = 0; n < names.length; n++) { 
    xmlhttp.open("GET", names[n], false); 
    xmlhttp.send(); 
    var xmlDoc = xmlhttp.responseXML; 
    // act on XML response here 
} 
+0

我编辑我原来的职位有更新的代码,你的回答并不真正适用,因为我可以” t指定var names = [“a.xml”,“b.xml”,...],因为我正在循环一个未知大小的变量 – Matt

+0

请看我编辑的答案。 – feedbackloop

+0

如果在每个''标签中有多个''标签,则需要添加一个subloop来代替names.push行:for(var j = 0; j feedbackloop