Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FileAPI XSLT文件对象到字符串?_Javascript_Html_Xslt_Activex_Fileapi - Fatal编程技术网

Javascript FileAPI XSLT文件对象到字符串?

Javascript FileAPI XSLT文件对象到字符串?,javascript,html,xslt,activex,fileapi,Javascript,Html,Xslt,Activex,Fileapi,我有一个由两部分组成的问题。第一部分,是否可以使用新的FileAPI检索项目的完整路径?到目前为止,我有: var file; function handleFileSelect(evt) { var files = evt.target.files; // FileList object file = files[0]; } 然后,文件变量需要进入此函数: function displayResult() { xml = loadXMLDoc(file); xsl = l

我有一个由两部分组成的问题。第一部分,是否可以使用新的FileAPI检索项目的完整路径?到目前为止,我有:

var file;
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object
    file = files[0];
}
然后,文件变量需要进入此函数:

function displayResult()
{
xml = loadXMLDoc(file);
xsl = loadXMLDoc("linkto.xsl");
// code for IE
if (window.ActiveXObject || xhttp.responseType == "msxml-document")
  {
  ex = xml.transformNode(xsl);
  document.getElementById("list").innerHTML = ex;
  }
// code for Chrome, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
  {
  xsltProcessor = new XSLTProcessor();
  xsltProcessor.importStylesheet(xsl);
  resultDocument = xsltProcessor.transformToFragment(xml, document);
  document.getElementById("list").appendChild(resultDocument);
  }
}
但不幸的是,这样做会将其作为文件对象传递,根据文档,我只能找到file.name。但是,这并不是一条完整的道路,这是我们需要走进去的。那么,有没有办法获得完整的路径


如果没有,是否有方法调整此函数以接受文件对象而不是字符串?

您可以使用window.url.createObjectURL(theBlobOrFile)将文件对象转换为url。您应该让他们能够从url将xml文档ajax化,但我怀疑在旧版IE中是否可以做到这一点。您也可以使用FileReader()将文件转换为字符串,并使用基于字符串的XSLT方法,尽管这会破坏一些xsl链接功能(如果使用)。感谢@dandavis的响应,我添加了该代码,但没有发生任何事情。所以我不确定它是不是读错了,还是不接受那种url?或者它只是没有正确地传递给我的函数?编辑:我不认为它会进入我的函数,因为我试图在函数中设置内部文本,但它不起作用。我需要做什么才能让它进入那个功能?当文件本身运行时,它就可以立即运行。将“displayResult()”添加到handleFileSelect()的底部,以便在文件slect部分完成后调用xslt部分。好的,我添加了那一行,并将这个简单的测试行添加到函数displayResult()的开头,但我什么也没有得到。document.getElementById(“列表”).innerHTML=“hi”;您始终可以在W3S页面的下一页尝试loadXMLString()例程。。。