首页 > 解决方案 > 为什么我的数组中缺少 array.from() 中的元素

问题描述

我目前正在从导入的 XML 文档构建一个大型数据库,大约 13k 项左右。当我做

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 文档的测试。我没有在年度文件中加载一个庞大的文件,而是显示了所有内容。仍然不知道为什么我不能只做大规模的。

标签: javascriptarraysxml-parsing

解决方案


推荐阅读