为什么php函数asXML()在响应中包含html标记?

时间:2012-11-14 00:30:36

标签: php javascript xml ajax simplexml

我正在创建一个PHP脚本,以将目录的文件结构作为XML文档返回。我使用simpleXML来执行此操作,脚本正在运行,但响应嵌套在HTML标记中。

PHP文件:

<!DOCTYPE HTML>

<html>
<body>



<?php
$xml_string = <<<XML
<?xml version='1.0' standalone='yes'?>
<directory>
</directory>
XML;
$directory=new SimpleXMLElement($xml_string);

Code creating the file structure.    

echo $directory->asXML();


?>

</body>
</html>

回复如下:

<!DOCTYPE HTML>

<html>
<body>

<?xml version='1.0' standalone='yes'?>
<directory>
XML tags created by script
</directory>

</body>
</html>

我想知道为什么XML在HTML文档中。我无法获取任何javascript来访问XML元素。

var xmlhttp = new XMLHttpRequest();
var xmlDoc=xmlhttp.responseXML.documentElement.getElementsByTagName("folder");
document.getElementById("myDiv").innerHTML = xmlDoc[0].firstChild.nodeValue;

(使用的Javascript代码片段)

我收到错误:'xmlhttp.responeXML未定义'

有没有办法解释响应或没有嵌套在HTML中的XML?

1 个答案:

答案 0 :(得分:1)

这是因为生成xml的代码被html包围。删除html部分,你应该没事。

删除它:

<!DOCTYPE HTML>

<html>
<body>

而且:

</body>
</html>