У меня есть вопрос, касающийся использования DOMDocument и создания XML.
У меня есть программа 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 клиенту, чтобы потом можно было производить HTML с помощью jQuery.
Буду признателен за любую помощь.
Кроме того, если кто-то может предложить потенциально более эффективный способ сделать это, это тоже было бы здорово:)
Спасибо.
Rob