为什么我从array.from()中丢失了数组中的元素

时间:2018-08-14 12:44:25

标签: javascript arrays xml-parsing

我目前正在从导入的XML文档构建大型数据库,大约需要13000项。当我这样做

window.onload = function() {
var fileInput = document.getElementById('fileInput');
var fileDisplayArea = document.getElementById('fileDisplayArea');

fileInput.addEventListener('change', function(e) {
    var file = fileInput.files[0];
    var textType = /text.*/;

    if (file.type.match(textType)) {
        var reader = new FileReader();

        reader.onload = function(e) {
            let text = reader.result;
            let parser = new DOMParser();
            xmlDoc = parser.parseFromString(text,"application/xml");
            getReportList(xmlDoc);
        }

        reader.readAsText(file);    
    } else {
        fileDisplayArea.innerText = "File not supported!";
    }
});
}

function isGroupTag(arr) {
return arr.nodeName === "Group";
}

function getReportList(xml) {
    // Creates an array containing all reports
    let reportList = Array.from(xmlDoc.children[0].children).filter(isGroupTag);
    allReports = reportList.map((currElement, index) => { 
        return getReport(xml, index);
    });
}

我只能拿回2100左右?我使用更小的XML文档检查了程序,并且一切正常。关于为什么我会得到这么小的回报的任何想法吗? 我的第一个想法是XML文档尚未完全加载,因此当我Array.from()进行操作时,它正在使用其所拥有的内容来构建数组……虽然不确定。任何帮助都会很棒。

编辑:

我刚刚完成了对更多XML文档的加载测试。我没有逐年加载一个大文件,而是显示了所有内容。仍然不确定为什么我不能只做大量的事情。

0 个答案:

没有答案