我有一個關於使用DOMDocument和創建XML的問題。PHP和DOMDocument
我有個PHP程序
- 負載在XML的XML文件
- 處理中的每個節點(行);將其發送到另一過程,然後返回一個XML元素
- 我得到的節點,這樣我可以創建(附加)的字符串表示來一個新的,生成的XML樹,以便返回到客戶端
的問題是,XML看起來很好,直到我嘗試將最終文檔返回給客戶端。我正在使用saveXML(),結果文件包含& lt & gt等。當我嘗試保存文件[save()]時,我也會得到這些結果。一直在這個搜索PHP板上幾個小時。
這裏是我的代碼:
<?php
header('Content-type: text/xml');
// **** Load XML ****
$xml = simplexml_load_file('Test1.xml');
// Instantiate class; work with single instance
$myAddress = new myAddressClass;
$domDoc = new DOMDocument('1.0', 'UTF-8');
$domDoc->formatOutput = true;
$rootElt = $domDoc->createElement('root');
$rootNode = $domDoc->appendChild($rootElt);
//Go through each row of XML and process each address
foreach($xml->Row as $row)
{
//fire off function against instance
// returns SimpleXMLElement
$resultXMLNode = $myAddress->buildRequest() ;
// need XML representation of node
$subNode = $addressXML->asXML();
// strip out extraneous XML def
$cleanSubNode = str_replace('<?xml version="1.0"?>', '', $subNode);
// create new node
$subElt = $domDoc->createElement('MyResponse', $cleanSubNode);
//append subElmt node
$rootNode->appendChild($subElt);
}
// need full XML doc properly formatted/valid
$domDoc->saveXML();
?>
順便說一句,我的XML返回給客戶,這樣我可以再通過jQuery生成HTML。
任何幫助,將不勝感激。
此外,如果任何人都可以提供多達這樣做的潛在的更有效的方法,那簡直太好了太:)
感謝。
羅布
決定在PHP中處理XML所需的庫。您正在同時使用SimpleXML和PHPDOM,我認爲它們不能很好地協作。 – timdream
你是指我最初的simplexml_load_file()?如果是這樣,不知道這會影響我的最終輸出,因爲這只是一個驅動程序文件。謝謝你的評論。 – Rob
我改變了行$ subNode = $ addressXML-> asXML();使用saveXML()與結果相同:( – Rob