我需要编写我的JavaScript函数,它将迭代输入类型文件以获取多个XML文件的内容(逐个)并以这样的方式连接它,即所有文件中的第一行内容(第一个文件除外) )被删除,其余内容在一个变量或JavaScript数组中,或者与浏览器一起使用。我花了几天时间研究谷歌,但无法让它工作,所以最后发布在这里。
function call(){
var myFile = $('#xmlFileUploaded').get(0);
var xml=new Array();
for (let i = 0; i < myFile.files.length; i++) {
(function(file){
let reader = new FileReader();
reader.onload = function() {
xml.push(reader.result);
}
reader.readAsText(file);
})(myFile.files[i]);
}
console.log(xml);
for(let x=0;x<xml.length;x++)
console.log(xml[x]);
}
花了几个小时和几天后,我创建了上面的代码。我运行它并选择3个XML文件。 Chrome中的console.log显示为空数组[]。当我点击小三角形以查看详细信息时,它显示正确的数组长度,即3个文件的内容。现在启动令人困惑的语句,如果我遍历这个数组,它什么也没给我。
示例XML文件:
one.xml:
<myroot>
<tag1>value1</tag1>
<tag2>value2</tag2>
</myroot>
two.xml
<myroot>
<tag1>value3</tag1>
<tag2>value4</tag2>
</myroot>
three.xml
<myroot>
<tag1>value5</tag1>
<tag2>value6</tag2>
</myroot>
期望的输出:
<myroot>
<tag1>value1</tag1>
<tag2>value2</tag2>
<tag1>value3</tag1>
<tag2>value4</tag2>
<tag1>value5</tag1>
<tag2>value6</tag2>
</myroot>