我在做这个项目,需要我来处理客户端上的XML文件的XML文件。 这是情景: 用户得到上传一个XML文件,XML文件的结构应该在这一点上读和表需要根据XML文件中的信息来填充。我没有创建表并填充它的问题,但是我想知道的是我可以在将XML文件上传到服务器之前处理它吗?的JavaScript - 上传和阅读客户端
function parseXML(xml_file){
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//xmlhttp.open("GET", "books.xml", false);
xmlhttp.open("GET",xml_file , false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
alert(xmlDoc);
}
当我使用处理文件后,上面的代码,xmlDoc中,将是空的......
function handleFileSelect(evt) {
// FileList object
var files = evt.target.files;
//var contents = evt.target.result;
//alert(contents);
parseXML(files[0]);
// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ', f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a', '</li>');
}
document.getElementById('file_list').innerHTML = '<ul>' + output.join('') + '</ul>';
}
有没有办法做到这一点?当然,我可以用php做到这一点......将文件上传到服务器,刷新页面并使用JavaScript读取最近上传的文件。但有没有办法实现这一点,而不需要上传XML文件到服务器?
DOMParse需要的文件路径打开:
xhttp.open("GET","books.xml",false)
有没有办法使用的FileReader读取该文件,并通过实际的文件,而不是到xhttp.open路径?
['FileReader'](https://developer.mozilla.org/en-US/docs/Web/API/FileReader)来读取该文件,['DomParser'](HTTPS://显影剂.mozilla.org/en-US/docs/Web/API/DOMParser)来解析XML。 –
我看着FileReader,但我不知道如何使用FileReader返回文件。在某些时候,需要的DOMParser要打开的文件,所以我应该提供一个paramater: xhttp.open(“GET”,把“books.xml”,假); –