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

    >> 讨论HTML、XHTML、Web2.0、Ajax、XUL, ExtJS, jQuery, JSON、Social Networking System(SNS)、Rich Internet Applications (RIA)、Tagging System、Taxonomy(tagsonomy,folkonomy)、XForms、XFrames、XInclude, XBL (XML Binding Language)等话题
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』 → [求助]如何让Ajax读取本地的xml文件进行更新网页 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 48692 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]如何让Ajax读取本地的xml文件进行更新网页 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     Qr 帅哥哟,离线,有人找我吗?
      
      
      威望:9
      等级:博士二年级(版主)
      文章:4392
      积分:29981
      门派:XML.ORG.CN
      注册:2004/5/15

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客11
    发贴心情 

    =================================
    document.getElementById(obj).firstChild.data = data;
    这句话是不更新网页的吗?它不是Ajax吗?
    =================================
    如果一定要区分,应该归属AJAH

    =================================
    另外我从网络中查到
    myXmlObj.open ('GET', file, false);是可以读取本地的xml,可为什么执行的效果还是IE打开了指定的xml文件?而不是更新局部网页?
    =================================
    XMLHttpRequest取XML后,要通过回调函数,将XML根据需要转换输出到局部页面。

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

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/19 11:25:00
     
     huoniao 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:10
      积分:93
      门派:XML.ORG.CN
      注册:2006/8/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给huoniao发送一个短消息 把huoniao加入好友 查看huoniao的个人资料 搜索huoniao在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看huoniao的博客12
    发贴心情 
    to Qr,各位高手:

    function AjaxRead(fileName){
        var myXmlObj = null;
        if(window.XMLHttpRequest){
            myXmlObj = new XMLHttpRequest();
        } else if(window.ActiveXObject){
            myXmlObj = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            return;
        }
        myXmlObj.onreadystatechange = function(){
            if(myXmlObj.readyState == 4){
                updateObj('testXmlObj',myXmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
            }
        }
        myXmlObj.open ('GET', file, true);
        myXmlObj.send ('');
    }
    function updateObj(obj, data){
        document.getElementById(obj).firstChild.data = data;
    }

    myXmlObj.onreadystatechange = function()这句话不是定义了回调函数吗?

    附件是我编写的html和xml文件,请指导,谢谢



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

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给Qr发送一个短消息 把Qr加入好友 查看Qr的个人资料 搜索Qr在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 访问Qr的主页 引用回复这个贴子 回复这个贴子 查看Qr的博客13
    发贴心情 
    用file://c:/data.xml就出错,改data.xml可以,估计是XMLHttpRequest不能读取本地XML。

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

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

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/22 10:01:00
     
     huoniao 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:10
      积分:93
      门派:XML.ORG.CN
      注册:2006/8/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给huoniao发送一个短消息 把huoniao加入好友 查看huoniao的个人资料 搜索huoniao在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看huoniao的博客14
    发贴心情 
    我刚才也跟了一下,XMLHttpRequest不能读取本地文件
    那么如果必须读取本地文件并局部更新网页,应该怎么办?使用什么技术?
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/22 10:59:00
     
     YHai 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:89
      门派:XML.ORG.CN
      注册:2006/4/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给YHai发送一个短消息 把YHai加入好友 查看YHai的个人资料 搜索YHai在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看YHai的博客15
    发贴心情 
    以下是引用huoniao在2006-8-11 1:26:00的发言:
    我正在学习Ajax,编写一个html
    部分代码如下:
    ... ...
    function AjaxRead(fileName){
         var myXmlObj = null;
         if(window.XMLHttpRequest){
             myXmlObj = new XMLHttpRequest();
         } else if(window.ActiveXObject){
             myXmlObj = new ActiveXObject("Microsoft.XMLHTTP");
         } else {
             return;
         }
         myXmlObj.onreadystatechange = function(){
             if(myXmlObj.readyState == 4){
                 updateObj('testXmlObj',myXmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
             }
         }
         myXmlObj.open ('GET', file, true);
         myXmlObj.send ('');
    }
    function updateObj(obj, data){
         document.getElementById(obj).firstChild.data = data;
    }

    ... ...

    <p id="testXmlObj">
    test Ajax<a href="testdata.xml"title="Test Ajax" onclick="AjaxRead('testdata.xml'); this.style.display='none'; return false">
    Ajax</a>
    </p>
    ... ...
    这样是好用的,可以局部更新网页。
    但我想让Ajax或者说让XMLHttpRequest读取本地的xml文件,进行如下改动(黑色部分)
    <p id="testXmlObj">
    test Ajax<a href="file:///C:/testdata.xml"title="Test Ajax" onclick="AjaxRead('file:///C:/testdata.xml'); this.style.display='none'; return false">
    Ajax</a>
    无论是把 myXmlObj.open ('GET', file, true);改成 myXmlObj.open ('', file, true);
    或者使用ADO Stream读取文件
         ... ...
         //myXmlObj.open ('GET', file, true);
         //myXmlObj.send ('');
         var ado_stream = new ActiveXObject("ADODB.Stream");
         ado_stream.Open();
         ado_stream.LoadFromFile(file);
         xmlObj.responseXML.loadXML( ado_stream.Read(0) );

         myXmlObj.send ('');
    执行的效果只是把testdata.xml文件给打开了,而没有达到局部更新网页的效果
    请问各位高人,如何解决?
    我是刚接触web编程,请各位不吝赐教,谢谢大家了


    把testdata.xml文件给打开了,是因为存在这个链接
    你把 href="file:///C:/testdata.xml" 改成 href="#"

    ----------------------------------------------
    www.yhai.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/23 16:01:00
     
     YHai 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:89
      门派:XML.ORG.CN
      注册:2006/4/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给YHai发送一个短消息 把YHai加入好友 查看YHai的个人资料 搜索YHai在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看YHai的博客16
    发贴心情 
    还有 myXmlObj.open ('GET', file, true);  需改成 myXmlObj.open ('GET', fileName, true);

    ----------------------------------------------
    www.yhai.cn

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/23 16:04:00
     
     huoniao 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:10
      积分:93
      门派:XML.ORG.CN
      注册:2006/8/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给huoniao发送一个短消息 把huoniao加入好友 查看huoniao的个人资料 搜索huoniao在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看huoniao的博客17
    发贴心情 
    to YHai
    不好意思,没有明白您写的内容

    把testdata.xml文件给打开了,是因为存在这个链接
    你把 href="file:///C:/testdata.xml" 改成 href="#"

    您的意思是不是
    href="file:///C:/testdata.xml替换成href="#"

    还有 myXmlObj.open ('GET', file, true);  需改成 myXmlObj.open ('GET', fileName, true);

    您的意思是不是
    其中的fileName是不是"file:///C:/testdata.xml"?

    请指导

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/8/31 9:24:00
     
     vachin 帅哥哟,离线,有人找我吗?
      
      
      等级:大二期末(汇编考了97分!)
      文章:62
      积分:423
      门派:XML.ORG.CN
      注册:2006/6/9

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给vachin发送一个短消息 把vachin加入好友 查看vachin的个人资料 搜索vachin在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看vachin的博客18
    发贴心情 
    貌似xmlhttp对象无法获取本地xml文件,只能获取web上的xml文件

    你可以使用xmldom对象,使用load函数来加载本地xml文件

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/26 9:35:00
     
     zaku 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:75
      门派:XML.ORG.CN
      注册:2008/5/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给zaku发送一个短消息 把zaku加入好友 查看zaku的个人资料 搜索zaku在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看zaku的博客19
    发贴心情 
    这个问题我研究了3天。现在基本上了解了一些,研究成果如下:

    1、XMLHttpRequest对象是可以读取本地文件的(以xml文件为主);

    2、但XMLHttpRequest对象用.responseXML返回XML DOM时返回状态值为0,能返回XML DOM对象,但其内容为null,即XML DOM不能获取本地XML文件的内容;

    3、但用XMLHttpRequest对象的.responseText,能返回正确的字符串形式的内容,既XMLHttpRequest对象可以读取本地文件,但只能返回字符串格式,不能返回有内容的XML DOM对象;

    4、在服务器上(包括本地架的,也就是说只要是在服务器环境下)的xml文件,XMLHttpRequest对象无论.responseXML还是.responseText都能正常操作,前者返回XML DOM对象,后者返回字符串;

    5、如果一定要操作本地xml文件,可以用XMLHttpRequest对象的.responseText来实现变相的操作;

    6、如果一定要操作本地xml文件,并一定要使用XML DOM对象的方法,可以使用XML DOM对象的load函数来加载本地xml文件,具体方法如下:
    var xml = new ActiveXObject("Microsoft.XMLDOM");
    xml.async = false;
    xml.load("xml.xml");
    该方法可以读取本地xml文件生成XML DOM对象;

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/5/20 17:32:00
     
     huoniao 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:10
      积分:93
      门派:XML.ORG.CN
      注册:2006/8/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给huoniao发送一个短消息 把huoniao加入好友 查看huoniao的个人资料 搜索huoniao在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 引用回复这个贴子 回复这个贴子 查看huoniao的博客20
    发贴心情 
    to zaku,以及关注这个帖子的各位:
    这是06年的老帖子了,-_-!
    十分感谢关心,并解决这个问题的各位!!!

    这个课题是为了对应客户在下载服务器压缩数据后,在本地解压并通过IE实时显示、处理系统而设立的,因为当时没有解决这个问题,就采用其他方法解决了。因此这个课题就取消了。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/5/20 17:55:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/12/22 7:37:04

    本主题贴数22,分页: [1] [2] [3]

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