必须反正使用一些服务器端代码,因为JS不允许上传文件,甚至访问用户计算机上
因此,如果不将其上传到服务器,你不能把这个文件的内容(更新:实际上你可以做到这一点,所以这只是一个建议)
但你可以以非常简单的方式做到这一点,例如提交带有文件输入的表单
<form enctype="multipart/form-data" action="/path/to/script" method="post">
<input name="myFile" type="file" />
</form>
使用AJAX发送和获取它的内容从简单的脚本,这样的回应:
<?php
if (!$_FILES["myFile"]["error"]) {
header("Content-Type: text/xml");
echo file_get_contents($_FILES["myFile"]["tmp_name"]);
}
?>
我使用PHP,但我当然,用另一种语言来执行它并不是问题。当然,我知道在主流浏览器中只有XHR2支持文件上传,但只要您询问关于HTML5 this solution will work的信息。
下一步是成功的处理程序添加到您的Ajax请求
success: function(data) {
// and parse it
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(data,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(data);
}
}
伟大的教程here。现在,您可以像使用简单的DOM文档一样使用xmlDoc var访问xml内容。
上传的文件是否必须是XML格式? –
是的,这是可能的,并且不需要服务器端代码。查看[FileReader](https://developer.mozilla.org/en-US/docs/Web/API/FileReader)对象(特别是readAsText方法)的文档以获取更多信息。 –
它不一定是XML;这似乎是XML在用户能够在上载之前轻松编辑他们自己的信息并能够轻松地将XML数据映射到他们各自的字段之间的妥协折衷。我也会检查出filereader。 – user2533653