0
好吧,所以我编写了这个程序,以避免手动重新格式化几个> 6000条目csv文件。它在完整文件的第一次运行时冻结,然后运行正常,当我给它一个1000条目块时,我在我的下载文件夹中有1000个文件。现在一次下载量不会超过51个。其余的都转换为我的XML格式,但不会自动下载。试图创建和下载数以千计的文件现在不工作
<script src="./papaparse.min.js"></script>
<script src="./jquery-2.2.1.min.js"></script>
<script>
var data;
var j = 1001;
function handleFileSelect(evt) {
var file = evt.target.files[0];
Papa.parse(file, {
header: true,
dynamicTyping: false,
// preview: 5,
step: function(results, parser) {
j++
// console.log("Row data:", results.data);
// console.log("Row errors:", results.errors);
// $("#test").text(results.data["0"]["correct_answer"]);
var dataArray = [j,
results.data["0"]["question_id"],
results.data["0"]["node_id"],
results.data["0"]["part_text"],
results.data["0"]["distractor_1"],
results.data["0"]["distractor_2"],
results.data["0"]["distractor_3"],
results.data["0"]["correct_answer"],
results.data["0"]["explanation"]];
dataArray = HTMLGunkCleanse(dataArray);
XMLWriter(dataArray[0],
dataArray[1],
dataArray[2],
dataArray[3],
dataArray[4],
dataArray[5],
dataArray[6],
dataArray[7],
dataArray[8]);
}//end of the line for stuff to do with each iteration of data
})
};
function HTMLGunkCleanse(dataArray){
var regex = /<[^>]*>/g;
for (i = 3;i<8;i++){
dataArray[i] = dataArray[i].replace("<p>", "\r\n").replace("</p>", "").trim();
var check = dataArray[i];
dataArray[i] = dataArray[i].replace(regex, "").replace("\\s+", "").trim();
if (check != dataArray[i]){
console.log(check);
console.log(dataArray[i]); // shows any differences that may have occured
}
}
return dataArray
}
function XMLWriter(fileName, qID, nodeID, question, d1, d2, d3, correct, feedback){
setTimeout(function(){console.log("waiting");},1)
//create long ugly string that looks good in xml
var blob = new Blob([doc.toString()], {
type: "text/plain;charset=utf-8"
});
var url = URL.createObjectURL(blob);
var a = document.createElement('a');
a.download = "cfal_question_00006_" + fileName + ".dita";
a.href = url;
a.textContent = "Download latest";
a.click();
//if the click() function dosen't work you can try using onclick() fucntion like this
//a.onclick();
document.getElementById('test').appendChild(a);
}
$(document).ready(function(){
$("#csv-file").change(handleFileSelect);
});
</script>
<input type="file" id="csv-file" name="files"/>
<div id="test">
</div>
在对问题的回答中,我认识到了它的丑陋。我已经采取了一个JavaScript类,不要在网上一些东西,所以我有点新鲜。任何建议,为什么它工作正常,现在不工作?我使用谷歌浏览器来运行它。
我仍然不知道为什么它有一次工作,但我切换到使用[JSZip](https://stuk.github.io/jszip/)和它的伟大工作。 – JOxborrow