我尝试使用How to print pretty xml in javascript?的答案,但它对我的代码没有用。它打印[对象]。有没有办法在这个对象中打印xml?
<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"></script>
</head>
<body>
<script>
var xmldoc= loadXMLDoc('skoly.xml');
var d = document.createElement('div');
var t = document.createTextNode(xmldoc);
d.appendChild(t);
document.write('<pre>' + d.innerHTML + '</pre>');
</script>
</body>
</html>
loadxmldoc.is:
function loadXMLDoc(filename)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // code for IE5 and IE6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
答案 0 :(得分:0)
responseXML
属性将返回Document
类型的对象(如果能够),否则null
(请参阅https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#responseXML)。
如果您只是尝试使用返回的XML将其打印为文本,那么您最好只使用responseText
对象上的xhttp
属性,它将为您提供XML作为文本字符串(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#responseText)。
您的loadxmldoc.js代码应该成为;
function loadXMLDoc(filename)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else // code for IE5 and IE6
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseText;
}
另外,作为旁注,我们并不建议使用同步XMLHttpRequests,因为这会阻止主线程。正如该文章(https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#open())中进一步解释的那样,这将从FF 30中弃用