无论如何,您必须使用一些服务器端代码,因为 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 而言,这个解决方案可以工作。
下一步是将成功处理程序添加到您的 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);
}
}
很棒的教程在这里。现在您可以像简单的 DOM 文档一样使用 xmlDoc var 访问 xml 内容。