xmlDoc=xmlhttp.responseXML 为空?该怎么处理

xmlDoc=xmlhttp.responseXML 为空?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script type="text/javascript">
function loadXMLDoc(){
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","http://localhost/ajaxtest/practice.xml",true);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
var x=xmlDoc.getElementsByTagName("PRODUCT");
var y=x[0].childNodes[0].nodeValue;
document.getElementById("myspan").innerText=y;
}
</script>
</head>
<body>
<span id="myspan">123</span>
<button id="mybutton" onclick="loadXMLDoc()">check</button>
</body>
</html>


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE CATALOG SYSTEM 'product.dtd'>
<CATALOG>
<PRODUCT NAME="Water" CATEGORY="Table" PLANT="Pittsburgh" INVENTORY ="Backordered">
<SPECIFICATIONS>SDF</SPECIFICATIONS>
<PRICE>FSDF</PRICE>
</PRODUCT>
</CATALOG>


xmlhttp.open里的路径最开始直接用的"practice.xml"换成http地址也还是不行。火狐的firebug里提示xmlDoc是Null
------解决思路----------------------
xmlhttp.open("GET","http://localhost/ajaxtest/practice.xml",true)
你是用的是异步方式,当然得不到数据
------解决思路----------------------
var y=x[0].childNodes[1].childNodes[0].nodeValue; // y = SDF
                document.getElementById("myspan").innerText=y;

你可以一步步打印x[0]下面的子节点的