新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 XML基础 』 → [求助]急,关于读取ASP读取XML文件的问题。。 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 7086 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]急,关于读取ASP读取XML文件的问题。。 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     fxblog 帅哥哟,离线,有人找我吗?射手座1977-12-14
      
      
      等级:大一新生
      文章:3
      积分:61
      门派:XML.ORG.CN
      注册:2008/9/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fxblog发送一个短消息 把fxblog加入好友 查看fxblog的个人资料 搜索fxblog在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fxblog的博客楼主
    发贴心情 [求助]急,关于读取ASP读取XML文件的问题。。


    有网上找到了代码


    查询页:yzcx.asp

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>js+xml的邮编区号查询</title>
    <style type="text/css">
    <!--
    body,td,th {
    font-size: 12px;}

    body {
    text-align:center;
    background-color:#fefefe;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    }
    .mainTable{
    background-color:#FFFFFF;border:1px solid #dddddd;
    }
    .foot{
    line-height:20px;text-align:left;
    }
    .foot a:link,.foot a:visited,.foot a:active{
    background-color: #f0f0f0;width:45px; height:20px;
    margin:5px 0px 0px 0px;padding:3px 3px 2px 3px;
    border-right:1px solid #cccccc;border-bottom:1px solid #cccccc;
    border-top:1px solid #f5f5f5;border-left:1px solid #f5f5f5;
    color:#000000;text-align:center;
    line-height:14px;font-size:12px;
    }
    .head td{
    font-size:14px; letter-spacing:2px;
    border-bottom:1px solid #dddddd;
    text-align:center;height:24px;
    FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#fafafa', endColorStr='#f0f0f0', gradientType='0');
    }

    .Item{
    font-size:12px;height:20px;
    text-indent:5px;
    border-bottom:1px solid #dddddd;
    background-color:#fafafa;
    }

    .Over{
    font-size:12px;height:20px;
    text-indent:5px;
    border-bottom:1px solid #dddddd;
    background-color:#f5f5f5;
    }

    .SearchBar {
    font-size:12px; letter-spacing:2px;
    border-bottom:1px solid #dddddd;
    padding:5px 0px 3px 0px;
    margin:4px 0px 4px 0px;
    text-align:center;height:24px;
    FILTER: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#f5f5f5', endColorStr='#eeeeee', gradientType='0');
    }
    .SearchBar input.textfield{
    border-top:1px solid #dddddd;border-left:1px solid #dddddd;
    border-right:1px solid #ffffff;border-bottom:1px solid #ffffff;
    BACKGROUND-COLOR: #f5f5f5;line-height:18px;
    width:240px;HEIGHT: 22px;
    }
    .SearchBar span.button{
    BORDER: 1px outset #f0f0f0;
    BACKGROUND-COLOR: #fafafa;
    width:50px;HEIGHT: 20px;
    padding:3px 3px 2px 3px;
    cursor:hand;
    }
    -->
    </style>
    <script language="JavaScript">
    <!--
    function Data_Load(KeyWords,KeyField,regExpType){
      var myXmlPath="data.xml";  //设置xml文件路径
      var myHolder=document.getElementById("insertdiv");  
      var myFoot=document.getElementById("footdiv");  
      var myTableID="Table_";  
      
      
      var myXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      myXmlDoc.async="false";
      myXmlDoc.load(myXmlPath);
      var xmlObj=myXmlDoc.documentElement;
      var myNodes = myXmlDoc.documentElement.childNodes;
      var myCount=0;
      var myPageSize=20;
      var myPageIndex=1;
      
      var myTable,myTr,myTd;
      for (var i=0;i<myNodes.length;i++){
       
       var myCheck=Data_Filter(KeyWords,myNodes(i).getAttribute(KeyField),regExpType);
       if(myCheck==true){
        myCount++;    
        if((myCount-1)==(myPageIndex-1)*myPageSize){
         myTable=document.createElement("<table id='"+ myTableID + myPageIndex +"' style='display:none; width:100%;' border=0>");    
         myTable.className="mainTable";
         myTr=myTable.insertRow();
         myTr.className="Head";  //设置表头css
         myTd=myTr.insertCell();
         myTd.innerText="省份";
         myTd=myTr.insertCell();
         myTd.innerText="地区";
         myTd=myTr.insertCell();
         myTd.innerText="邮编";
         myTd=myTr.insertCell();
         myTd.innerText="区号";
        }
       
        myTr=myTable.insertRow();
        myTd=myTr.insertCell();
        myTr.className="Item";  //设置内容css    
        myTd.innerText=myNodes(i).getAttribute("Province");
        myTd=myTr.insertCell();
        myTd.innerText=myNodes(i).getAttribute("County");
        myTd=myTr.insertCell();
        myTd.innerText=myNodes(i).getAttribute("Zipcode");
        myTd=myTr.insertCell();
        myTd.innerText=myNodes(i).getAttribute("Areacode");
        
        myTr.attachEvent("onmouseover",ItemOver);
        myTr.attachEvent("onmouseout",ItemOut);
       
        if(myCount==(myPageIndex)*myPageSize){
         myHolder.appendChild(myTable);  //增加表格
         var mySpan=document.createElement("<span>");
         mySpan.innerHTML=" <a href='#' onClick='javacript:PageChange(\""+ myTableID + myPageIndex +"\")'>第"+myPageIndex+"页</a> ";
         myFoot.appendChild(mySpan);     
         myPageIndex++;
        }    
       }
       
      }
      if(myCount>0){
       if(myCount>(myPageIndex-1)*myPageSize&&myCount!=myPageIndex*myPageSize){
        myHolder.appendChild(myTable);  //增加表格
        var mySpan=document.createElement("<span>");
        mySpan.innerHTML=" <a href='#' onClick='javacript:PageChange(\""+ myTableID + myPageIndex +"\")'>第"+myPageIndex+"页</a> ";
        myFoot.appendChild(mySpan);     
        myPageIndex++;
       }
      
       var myInfo=document.createElement("<span>");  
       var myPageNum=(myPageIndex*myPageSize>myCount)?(myPageIndex-1):myPageIndex;
       myInfo.innerHTML="共计【"+myCount+"】条信息,每页"+ myPageSize+"条,分"+myPageNum+"页显示。";
       myFoot.appendChild(myInfo);   
       PageChange(myTableID +"1");   
      }else{
       var myInfo=document.createElement("<span>");
       myInfo.innerHTML=" 对不起,没找到任何相关数据...";
       myFoot.appendChild(myInfo);   
      }
      document.getElementById("Waiting").style.display="none";
    }

    function Data_Filter(inputWords,inputFieldValue,regExpType){
      inputWords=inputWords.replace(/(^\s*)|(\s*$)/g, "");
      inputFieldValue=inputFieldValue.replace(/(^\s*)|(\s*$)/g, "");
      switch(regExpType){
       case 0:  //等于
        if(inputWords==inputFieldValue){
         return true;
        }else{
         return false;
        }
        break;
       case 1:  //包含
        if(inputFieldValue.indexOf(inputWords)>-1){
         return true;
        }else{
         return false;
        }
        break;
       case 2:  //以...开头
        if(inputFieldValue.substring(0,inputWords.length)==inputWords){
         return true;
        }else{
         return false;
        }
        break;
       case 3:  //以...结尾
        if(inputFieldValue.substring(inputFieldValue.indexOf(inputWords),inputFieldValue.length)==inputWords){
         return true;
        }else{
         return false;
        }
        break;
       default:  //等于
        if(inputWords==inputFieldValue){
         return true;
        }else{
         return false;
        }
        break;    
      }
       
      return false;
    }

    function PageChange(showID){
      var myHolder=document.getElementById("insertdiv");
      for(var i=0;i<myHolder.childNodes.length; i++){
       var myNode = myHolder.childNodes[i];   
       if (myNode.nodeName.toLowerCase()=="table") {myNode.style.display="none";}
      }
      document.getElementById(showID).style.display="";
    }
    function ItemOver(){
      var t=event.srcElement.parentElement;
      t.origClassName=t.className;
      t.className="Over";
    }
    function ItemOut(){
      var t=event.srcElement.parentElement;
      t.className=t.origClassName;  
    }

    function Data_Search(KeyWords,KeyField,regExpType){  
      KeyWords=KeyWords.replace(/(^\s*)|(\s*$)/g, "");
      KeyField=KeyField.replace(/(^\s*)|(\s*$)/g, "");
      regExpType=parseInt(regExpType,10);
      if(KeyWords==""||KeyWords==null){
       alert("请输入查询关键词!\n");
      }else{
       document.getElementById("Waiting").style.display="";
       var myHolder=document.getElementById("insertdiv");  
       var myFoot=document.getElementById("footdiv");
       myHolder.innerHTML="";
       myFoot.innerHTML="";    
       setTimeout("Data_Load('"+KeyWords+"','"+KeyField+"',"+regExpType+")",1500);
      }  
    }
    //-->
    </script>
    </head>

    <body>
    <div id="control" style="width:560px;">
    <div id="SearchBar" class="SearchBar" style="width:100%;">
      <select name="Select_Field" id="Select_Field">
         <option value="Province" selected>省份</option>
         <option value="County">地区</option>
         <option value="Zipcode">邮编</option>
         <option value="Areacode">区号</option>
      </select>
      <select name="Select_Reg" id="Select_Reg">
         <option value="0" selected>等于</option>
         <option value="1">包含</option>
         <option value="2">以...开头</option>
         <option value="3">以...结尾</option>
      </select>
      <input name="Text_Words" type="text" id="Text_Words" value="山东" class="textfield">
      <span onClick="javascript:Data_Search(document.getElementById('Text_Words').value,document.getElementById('Select_Field').value,document.getElementById('Select_Reg').value)" class="button">搜索</span>  
    </div>
    <div id="insertdiv" style="width:100%;"></div>
    <div id="footdiv" class="foot" style="width:100%;"></div>
    <table id="Waiting" width="200" border="0" align="center" cellpadding="1" cellspacing="1" style="display:none;background-color:#dddddd; margin:10px 0px 10px 0px;">
          <tr>
            <td style="background-color:#ffffff;">
       <MARQUEE direction="right" height="100%" width="100%" scrollamount="9" scrolldelay="0">
        <span style="width:6px; height:20px; background-color:#999999; margin:-5px 2px -5px 2px;"></span>
        <span style="width:6px; height:20px; background-color:#999999; margin:-5px 2px -5px 2px;"></span>
        <span style="width:6px; height:20px; background-color:#999999; margin:-5px 2px -5px 2px;"></span>
       </marquee>
      </td>
          </tr>
        </table>  
    </div>

    </body>
    </html>


    XML文件:data.xml


    <?xml version="1.0" encoding="gb2312"?>
    <!-- 邮编区号数据 -->
    <MyData>
      <Item Province="北京" County="北京" Zipcode="100000" Areacode="010" />
      <Item Province="北京" County="通县" Zipcode="101100" Areacode="010" />
      <Item Province="北京" County="昌平" Zipcode="102200" Areacode="010" />
      <Item Province="北京" County="大兴" Zipcode="102600" Areacode="010" />
      <Item Province="北京" County="密云" Zipcode="101500" Areacode="010" />
    </MyData>


    =================================================================

    查询没问题,但如果data.xml有多个节点,就无法查询,如:


    <?xml version="1.0" encoding="gb2312"?>
    <!-- 邮编区号数据 -->

    <MyOther>

    </MyOther>
    <MyData>
      <Item Province="北京" County="北京" Zipcode="100000" Areacode="010" />
      <Item Province="北京" County="通县" Zipcode="101100" Areacode="010" />
      <Item Province="北京" County="昌平" Zipcode="102200" Areacode="010" />
      <Item Province="北京" County="大兴" Zipcode="102600" Areacode="010" />
      <Item Province="北京" County="密云" Zipcode="101500" Areacode="010" />
    </MyData>

    加入<MyOther>后就无法查询,哪个高手帮修改一下,谢谢!




       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/24 19:12:00
     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 XML基础 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客2
    发贴心情 
    for (var i=1;i<myNodes.length;i++)
    没有测试过,试试看,

    ----------------------------------------------
    没人帮忙,那就靠自己,自己才是最好的老师!本人拒绝回答通过站内短消息提出的问题!

    blog:http://Qr.blogger.org.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/25 12:42:00
     
     fxblog 帅哥哟,离线,有人找我吗?射手座1977-12-14
      
      
      等级:大一新生
      文章:3
      积分:61
      门派:XML.ORG.CN
      注册:2008/9/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fxblog发送一个短消息 把fxblog加入好友 查看fxblog的个人资料 搜索fxblog在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fxblog的博客3
    发贴心情 
    还是一样。。提示错误:
    Line:163
    Char:3
    Code:0
    Error:'null' 为空或不是对象
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/25 14:49:00
     
     fxblog 帅哥哟,离线,有人找我吗?射手座1977-12-14
      
      
      等级:大一新生
      文章:3
      积分:61
      门派:XML.ORG.CN
      注册:2008/9/24

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给fxblog发送一个短消息 把fxblog加入好友 查看fxblog的个人资料 搜索fxblog在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看fxblog的博客4
    发贴心情 
    自己已经找到解决办法:
    用selectNodes设置了一下节点路径就可以了。。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/9/25 19:42:00
     
     GoogleAdSense射手座1977-12-14
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/3 17:19:34

    本主题贴数4,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,082.031ms