关于responeXML的返回值

  突然想尝试写一个Ajax来学习研究下了,去w3c school看了Ajax的介绍后,了解到Ajax其实就是利用了javascript的一个XMLHttpRequest对象来与server端通信,从而达到异步更新页面的 效果。用XMLHttpRequest的responseText来尝试返回一个文本没问题后,就尝试用responseXML 来返回一个XML并用javascript来处理了,但中间却经历了不少波折~

服务端生成xml的代码:

<?php

header("Content-type:text/xml");     //发送文件头让浏览器知道这是

XML header("Cache-Control: no-cache"); //缓存处理

echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>   //XML文件的第一行,在它之前不 能有任何输出。 <ddd>wowowo</ddd> ";

?>

在生成xml文件时真的要注意在<?xml ?>标签前的空格和空行,都会引起xml报错的~   

浏览端代码:

<html>

<script>

function getget(){

y=document.getElementById("yoyo");

var xmlhttp;

try {

    xmlhttp=new XMLHttpRequest;

}catch(e) {

    try {

        xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");

    }catch(e) {

        alert("你的浏览器连AJAX都无支持~~");

    }

}

xmlhttp.onreadystatechange=function() {

    if(xmlhttp.readyState==4) {

        xc=xmlhttp.responseXML;

        y.value=xc.getElementsByTagName("ddd")[0].childNodes[0].nodeValue;

    }

}

xmlhttp.open("post","ddd.php",true);

xmlhttp.send(null);

}

</script>

<input id="yoyo" type="text"> <input type="button" value="haha" onclick="getget();">

</html>

  在w3c的教程中看到是这样赋值个xc的:xc=xmlhttp.responseXML.documentElement,但我用 这种赋值方式时,浏览器会报错~最后朋友告诉我responseXML返回的是一个文档,这样的话直 接将xmlhttp.responseXML赋予xc后,用xc.getElementsByTagName就可以提取数据了~

  这只是一个很简单的实例,连发送数据给server端的代码也没有,不过这主要是用来学习研 究怎样处理responseXML返回的XML数据~了解了这个后,要改进此段代码也变的轻松了~

posted @ 2008-09-25 09:09  Fakis  阅读(451)  评论(0编辑  收藏  举报