我有一个关于使用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