首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • JS 读XML 数据问题。。。。。 [已结贴,结贴人:nfnxg123456]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 11:48:24 楼主
    Default.aspx 页面//这是提供XML数据的页面
    C# code
    DataTable dt = ds.getdata(); string smp = "<?xml version='1.0' encoding='utf-8' ?><datas>"; if (dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++) { smp += "<data>"; smp += "<xxbh>" + dt.Rows[i]["xxbh"].ToString() + "</xxbh>"; smp += "<xxlx>" + dt.Rows[i]["xxlx"].ToString() + "</xxlx>"; smp += "<fbsj>" + dt.Rows[i]["fbsj"].ToString() + "</fbsj>"; smp += "<cfd>" + dt.Rows[i]["cfd"].ToString() + "</cfd>"; smp += "<xxzt>" + dt.Rows[i]["xxzt"].ToString() + "</xxzt>"; smp += "<lxdh>" + dt.Rows[i]["lxdh"].ToString() + "</lxdh>"; smp += "</data>"; } } smp += "</datas>"; Response.Write(smp); Response.End();

    在Index.htm 页面
    使用JS 异步请求去请求Default.aspx页面
    在JS
    JScript code
    http_request.onreadystatechange = function () { if (http_request.readyState == 4) { if(http_request.status == 200) { [color=#FF0000] var root=xmlhttp.responseXML.documentElement//这句话报null 错误,但把请求的Default.aspx 换成一个xml文件的话 他就能得到xml对象[/color] .......................... } } }

    ////////////////////// 
    60  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 12:00:431楼 得分:0
    自已顶一个。。。
    这么长时间也没有人回一个。。。。
    技术含量太低了!!!!?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 12:14:072楼 得分:0
    服务器返回的是表示XML的字符串并不是XML,设置响应的返回类型试试。
    另:拼接字符串还是用StringBuilder的好
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 13:42:193楼 得分:0
    引用 2 楼 iceblockchina 的回复:
    服务器返回的是表示XML的字符串并不是XML,设置响应的返回类型试试。
    另:拼接字符串还是用StringBuilder的好

    能说的具体一点吗、、、
    怎样设置"响应的返回类型"
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 14:38:594楼 得分:10
    你返回的不是一个xml文档,可能加了一些html标记
    你alert一下xmlHttp.responseXML.documentElement或者xmlHttp.responseXML看看是什么结果.
    处理方法:
    1.生成一个临时xml文件.用xmldocument对象读取.
    2.去掉aspx上的所有html标记,包括 <html> </html>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:06:125楼 得分:0
    peng790
    我的XML中不包括 HTML标记。我看过了。。。
    xmlHttp.responseXML.documentElement    ==== [null]
    xmlHttp.responseXML  =====[object]

    "1.生成一个临时xml文件.用xmldocument对象读取. "
    在JS中怎样升成昨临时XML文件。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lfywy
    • 等级:
    发表于:2008-05-22 15:12:446楼 得分:40
    推荐参考资料:
    http://blog.csdn.net/lfywy/archive/2008/05/22/2469723.aspx
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:20:257楼 得分:0
    如果格式正确,那就是var root 为null,用下面的代码试下看.
    var root = new ActiveXObject("Microsoft.XMLDOM");
    root = xmlhttp.responseXML.documentElement
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:34:548楼 得分:0
    另外在aspx.cs页面加
    response.ContentType="text/xml"
    response.Charset="UTF-8"'

    Response.Write(smp);
    Response.End();

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:41:229楼 得分:10
    不要用responseXML
    用responseText

    JScript code
    var xml = CreateXmlDom(); xml.loadXML(xmlhttp.responseText); function CreateXmlDom(){ var ver = ["MSXML2.DOMDocument.6.0","Msxml2.DOMDocument.5.0","MSXML2.DOMDocument.4.0", "MSXML2.DOMDocument.3.0","MSXML2.DOMDocument","Microsoft.XMLDom"]; for (var i = 0; i < ver.length; i++) try { var XmlDom = new ActiveXObject(ver[i]); return XmlDom; } catch (e) {} return false; }

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:43:3510楼 得分:0
    或者直接:
    xml.load("Default.aspx")
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 15:48:0211楼 得分:0
    用xmlHttp.responseText看看
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zyug
    • 等级:
    发表于:2008-05-22 15:59:0012楼 得分:0
    我的建议同九楼.另外我不建议用一个页面用生成一个XML文档.如果你有几种这种应用那你不得建几个ASPX的页面


    建议你用js+webservice不要用js + aspx


    另外。最好加上处理FireFox的代码.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 16:05:4413楼 得分:0
    你返回的是一个text,并不是xml,我的理解,哈哈

    C# code
    XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, Response.ContentEncoding); writer.Formatting = Formatting.Indented; writer.Indentation = 4; writer.IndentChar = ' '; ds.WriteXml(writer); writer.Flush(); Response.End(); writer.Close();
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-22 16:18:3314楼 得分:0
    最终方法
    var xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
    xmlDoc.loadXml(xmlhttp.responseText);
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved