我目前正在从导入的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文档的加载测试。我没有逐年加载一个大文件,而是显示了所有内容。仍然不确定为什么我不能只做大量的事情。