2012-11-14 46 views
1

我正在創建一個PHP腳本以將目錄的文件結構作爲XML文檔返回。我已經使用simpleXML來做到這一點,腳本正在工作,但響應嵌套在HTML標籤中。爲什麼PHP函數asXML()在響應中包含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未定義」

是否有解釋的響應或不具有任何XML方式嵌套在HTML中?

回答

1

這是因爲生成xml的代碼被html包圍。刪除html部分,你應該沒問題。

刪除此:

<!DOCTYPE HTML> 

<html> 
<body> 

這:

</body> 
</html> 
相關問題