现有1.jsp
<form   method="POST" action="2.jsp">
<table width="80%" border="0" align="center" cellpadding="2" cellspacing="1" class="tableStyle01">
  <tr> 
    <td align="right" class="TDstyle01">filename: </td>
    <td class="TDstyle01"><input name="filename" type="text" class="input"  ></td>
  </tr>
  <tr align="center"> 
    <td height="35" colspan="2" class="TDstyle03"> <input name="submit" type="submit" class="button" value=" 保存 " > 
    <input name="submit" type="button" class="button" value=" 返回 " onClick="window.history.back(-1)"> 
    </td>
  </tr>
</table>
</form>
输入服务器端的xml文件名后提交到2.jsp进行解析
<script language="javascript">
      function readXML(){
          var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async="false";
          var filename="<%=request.getParameter("filename")%>";
         var file=filename.toString();
...
           xmlDoc.load("文件路径");
...
</script>
在js中怎样获取获取文件路径并进行转换,加载为正确的路径呢?

解决方案 »

  1.   

    比如:文件路径为f:/a.xml
    通过1.jsp输入的文件名传递到2.jsp中
      

  2.   

    比如:文件路径为f:/a.xml 
    js会认为 f:/a.xml 是客户端的路径,为了测试,你可以将客户端机器F盘放上这个文件试试.
    另外,你可以考虑用Ajax方法返回服务器端虚拟目录中的XML文件,返回的就是xmlDoc
      

  3.   

    什么意思啊?
    传递参数?1.jsp?xx=xx
      

  4.   

    JS跑在客户端,怎么解析服务器上的XML文件.
    要把文件夹传到客户端,或用流.
      

  5.   

    比如:文件路径为f:/a.xml 
    js会认为 f:/a.xml 是客户端的路径,为了测试,你可以将客户端机器F盘放上这个文件试试. 
    另外,你可以考虑用Ajax方法返回服务器端虚拟目录中的XML文件,返回的就是xmlDoc3楼的可行
      

  6.   

    用ajax就可以了
    var ajax = new FWK.Util.Ajax("../list.xml","Post","","async");
    ajax.$success() {
        var xmlDom = ajax.responseXML;
        var test = xmlDom.selectNodes("//test");
       ......
    }
    ajax.$fail() {
        alert("Err")
    }
    ajax.open();
      

  7.   

    根本不行.各位可以尝试:
    <1>1.jsp<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%@  page import="java.io.*" %> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ajax</title>
    </head>
    <SCRIPT LANGUAGE="JavaScript">
    var xmlhttp;
    // var filename="<%=request.getParameter("filename")%>";
    // var file=filename.toString();
    function createxmlhttprequest(){
    if(window.ActiveXObject){
         xmlhttp=new ActiveXObject("Microsoft.XMLHttp");
    }
       else if (window.XMLHttpRequest){
       xmlhttp=new XMLHttpRequest();
         }
       }
       function startrequest(){
         createxmlhttprequest();
         xmlhttp.onreadystatechange=runxmlhttp;
       //  xmlhttp.open("get","f:/index.xml");
            xmlhttp.open("get","index.xml");     xmlhttp.send();
       }
    function runxmlhttp() {
             if (xmlhttp.readystate==1){
            picshow.innerText="已打开!";
       }
       if (xmlhttp.readystate==2){
             picshow.innerText="正在读取!";
       }
       if (xmlhttp.readystate==3){
             picshow.innerText="正在返回!";
       }
         if (xmlhttp.readystate==4){
           if(xmlhttp.status==200||xmlhttp.status==0){
              picshow.innerText=xmlhttp.responseText;
           showarea("haiding");
          }
          }

       function showarea(areastr)
    {var xmlhttptext=xmlhttp.responseXML;
    var xmlnode,xmlstr;
        if (areastr==null||areastr=="")
        { //找出所有标签名为area的节点
        xmlnode=xmlhttptext.getElementsByTagName("area");
        xmlstr="所有地区";
        for (var i=0;i<xmlnode.length;i++)
           {
             xmlstr=xmlstr+"\n"+xmlnode[i].childNodes[0].nodeValue;
           } 
             picshow.innerText=xmlstr;
       }
       else
       {//找出所有标签名为areastr的子节点中标签名为"area"的节点
       xmlnode=xmlhttptext.getElementsByTagName(areastr)[0];
       var xmlnode1=xmlnode.getElementsByTagName("area");
       xmlstr=areastr;
       for(var i=0;i<xmlnode1.length;i++)
           {
             xmlstr=xmlstr+"\n"+xmlnode1[i].childNodes[0].nodeValue;
           } 
             picshow.innerText=xmlstr;
      
       }
    }
    </SCRIPT>
    <body onLoad="startrequest();">
    <div id="picshow"></div>
    </body>
    </html><2> index.xml<?xml version="1.0" encoding="UTF-8"?>
    <china>
    <beijing>
       <haiding>
           <area>海淀</area>
       </haiding>
       <xuanwu>
           <area>宣武</area>
        <area>宣武1</area>
       </xuanwu>
    </beijing>
    <guangxi>
       <nanning>
           <area>南宁</area>
       </nanning>
       <hezhou>
           <area>富川</area>
        <area>八步</area>
       </hezhou>
    </guangxi>
    <shanxi>
       <xian>
           <area>西安</area>
       </xian>
       <guanzhong>
           <area>关中</area>
        <area>关南</area>
       </guanzhong>
    </shanxi>
    </china>
      

  8.   


    js 尝试也不行
    <1> 2.jsp
    <%@ page language="java" contentType="text/html; charset=utf-8" %>
    <%@  page import="java.io.*" %> 
    <html>
    <title>系统部署配置文件参数修改</title>
     <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <script language="javascript">
          function readXML(){
      
              var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
               xmlDoc.async="false";
                var filename="<%=request.getParameter("filename")%>";
                var file=filename.toString();
             // document.write("<br>文件路径:"+file); 
             // xmlDoc.load("sysconfig.xml");
                // xmlDoc.load(file);  
               xmlDoc.load("f:/sysconfig.xml");
              var code=xmlDoc.getElementsByTagName("config");
              for(var i=0;i<code.length;i++){
                  var nodename = code[i].getAttribute("key"); 
                  var nodevalue = code[i].firstChild.nodeValue;
                  if(nodename == "starturl"){
                      document.getElementById("record1").value=nodevalue;
                  }else if(nodename == "mmfiledir"){
                      document.getElementById("record2").value=nodevalue;
                  }else if(nodename == "wincfgdir"){
                      document.getElementById("record3").value=nodevalue;
                  }         
              }
          }  </script>
    <style type="text/css">
    .tableStyle01 {
    background-color: #ABDDEE;
    border: 1px solid #4692AE;
    }
    .TDstyle01 {
    font-size: 15px;
    color: #000000;
    background-color: #F6FCFD;
    line-height: 22px;
    }
    .TDstyle02 {
    font-size: 12px;
    line-height: 22px;
    color: #000000;
    background-color: #E2F4F9;
    height: 24px;
    }
    .TDstyle03 {
    font-size: 12px;
    color: #000000;
    background-color: #EDF7F9;
    line-height: 22px;
    }
    .T2 {
    font-size: 12px;
    font-weight: bold;
    color: #004C65;
    }</style> 
    <body onload="readXML();" bgcolor="#F6FAFD" leftmargin="6" topmargin="2" marginwidth="0" marginheight="0">
    <form   method="POST" action="WriteXml.jsp">
    <table width="100%" border="0" cellspacing="0" cellpadding="2">
      <tr> 
        <td height="23" nowrap bgcolor="D6E5EF"><span class="T2">系统部署管理&gt;&gt;系统配置文件修改填写</span></td>
      </tr>
    </table>
    <br>
    <br>
    <table width="80%" border="0" align="center" cellpadding="2" cellspacing="1" class="tableStyle01">
      <tr> 
        <td align="right" class="TDstyle01">fileurl: </td>
        <td class="TDstyle01"><input name="fileurl" type="text" class="input"  ></td>
      </tr>
      <tr> 
        <td align="right" class="TDstyle01">starturl: </td>
        <td class="TDstyle01"><input name="starturl" type="text" class="input"  id="record1"></td>
      </tr>
      <tr> 
        <td align="right" class="TDstyle01">mmfiledir:</td>
        <td class="TDstyle01"><input name="mmfiledir" type="text" class="input" style="width:80%" id="record2"></td>
      </tr>
     <tr align="center"> 
        <td height="35" colspan="2" class="TDstyle03"> <input name="submit" type="submit" class="button" value=" 保存 " > 
        <input name="submit" type="button" class="button" value=" 返回 " onClick="window.history.back(-1)"> 
        </td>
      </tr>
    </table>
    </form>
    </body>
    </html>
    <2> sysconfig.xml
    <?xml version="1.0" encoding="GBK" ?>
    <sysconfig> 
     <config key="starturl">sa</config> 
     <config key="mmfiledir" >34</config> 
     <config key="wincfgdir" >43</config> 
    </sysconfig>