FileReader连接文件

时间:2017-09-20 08:13:21

标签: javascript jquery xml

我需要编写我的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个文件的内容。现在启动令人困惑的语句,如果我遍历这个数组,它什么也没给我。

  

chrome console.log output

示例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>

0 个答案:

没有答案