以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  怎么用xmlhttpresponse读取xml文件的属性数值  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=51791)


--  作者:dearlyt
--  发布时间:8/25/2007 12:11:00 AM

--  怎么用xmlhttpresponse读取xml文件的属性数值
例如可以用xmldom attribute实现。
用xmlhttpresponse怎么实现呢
谢谢。
--  作者:Qr
--  发布时间:8/26/2007 12:11:00 PM

--  
一样。
--  作者:dearlyt
--  发布时间:8/26/2007 7:54:00 PM

--  
可以举个例子么
假如这样的数据
<?xml version='1.0' encoding='ASCII' ?>
<Users>
       <User Name='AAA' MSN='BBB' Email='ccc@c.com'></User>
        <User Name='AAA' MSN='BBB' Email='ccc@c.com'></User>
</Users>
怎么用xmlhttprequest 读取出来呢?
<html>
<head>
<script type="text/javascript">
var xmlhttp

function loadXMLDoc(url)
{
xmlhttp=null
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change
  xmlhttp.open("GET",url,true)
  xmlhttp.send(null)
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
}

function state_Change()
{
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
  {
  // if "OK"
  if (xmlhttp.status==200)
  {
  alert("XML data OK")
  document.getElementById('A1').innerHTML=xmlhttp.status
  document.getElementById('A2').innerHTML=xmlhttp.statusText
  var xmlDoc=xmlhttp.responseXml.xml
  for (i=0;i<x.length;i++)
  {
   document.write(x[i].getAttribute('name'));
  document.write("<br />");
  }
  }
  else
  {
  alert("Problem retrieving XML data:" + xmlhttp.statusText)
  }
  }
}

</script>
</head>

<body onload="loadXMLDoc('users.xml')">
<h2>Using the HttpRequest Object</h2>

<p><b>status:</b>
<span id="A1"></span>
</p>

<p><b>status text:</b>
<span id="A2"></span>
</p>

<p><b>response:</b>
<br><span id="A3"></span>
</p>

</body>
</html>
怎么改呢?


--  作者:Qr
--  发布时间:8/27/2007 11:30:00 AM

--  
只是方法,试试看吧,
var xmlDoc=xmlhttp.responseXML
var oNode = xmlDoc.documentElement.childNodes
  for (i=0;i<oNode.length;i++)
  {
   document.write(oNode[i].getAttribute('name'));
   document.write("<br />");
  }
--  作者:xiaomantian
--  发布时间:8/27/2007 11:33:00 AM

--  
不错
--  作者:dearlyt
--  发布时间:8/28/2007 2:58:00 PM

--  
返回空,呵呵.
--  作者:Qr
--  发布时间:8/29/2007 9:43:00 AM

--  
方法就这样子了,有错你自己跟踪调试吧

Name偶那用小写了,要改大写。发现的你js代码不是很规范,大小写不分。

[此贴子已经被作者于2007-8-29 10:50:20编辑过]

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.021ms