使用javascript检索文件的完整路径

时间:2010-06-24 06:13:29

标签: javascript xml

我想检索文件的完整路径并将其传递给javascript。要求是我需要使用JavaScript检索XML文件。

2 个答案:

答案 0 :(得分:1)

如果您事先知道确切的文件,则可以创建服务器端程序(即服务)来读取文件,解析并输出。

然后你只需要编写一些Javascript来对这个服务进行AJAX调用(查看一个类似Prototype或JQuery的Javascript库)来读取服务的输出,从而读取文件的内容。

答案 1 :(得分:1)

如果是相对于您的网页可以访问的文件,请执行以下操作:

var xmlDoc=new ActiveXObject("MSXML.DOMDocument");
xmlDoc.async="false";
xmlDoc.load("abc.xml"); 

假设您的网页旁边是abc.xml ...

这没有说明如何获取XML的完整路径 - 你还需要它还是加载它就足够了?

对于跨浏览器(来自:http://developer.apple.com/internet/webcontent/xmlhttpreq.html

var req;
loadXMLDoc("abc.xml");

function loadXMLDoc(url) {
    req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    try {
                req = new XMLHttpRequest();
            } catch(e) {
                req = false;
            }
        // branch for IE/Windows ActiveX version
        } else if(window.ActiveXObject) {
            try {
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    req = false;
                }
            }
        }
        if(req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send("");
        }
    }

    function processReqChange() {
        // only if req shows "loaded"
        if (req.readyState == 4) {
            // only if "OK"
            if (req.status == 200) {
                // ...processing statements go here...
                alert(req.responseXML);
            } else {
                alert("There was a problem retrieving the XML data:\n" + req.statusText);
            }
        }
    }