Strings such as " ' & < > may need to be escaped in advance.
In that case, you can use htmlspecialchars().
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
DOMDocumentFragment::appendXML — Добавление необработанных данных XML
$data
): boolДобавляет необработанные XML-данные в объект класса DOMDocumentFragment.
Это метод не является частью стандарта DOM. Он был разработан для упрощения процедуры добавления XML DocumentFragment в DOMDocument.
Если вы хотите следовать стандарту, вам нужно будет создать временный DOMDocument с фиктивным корнем, а затем пройти по всем узлам потомкам корневого узла XML-документа, чтобы добавить их.
data
XML для добавления.
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Добавление XML-данных в документ
<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>
Результат выполнения данного примера:
<?xml version="1.0"?> <root><foo>text</foo><bar>text2</bar></root>
Strings such as " ' & < > may need to be escaped in advance.
In that case, you can use htmlspecialchars().
Here is (maybe) a better example:
/**
* Helper function for replacing $node (DOMNode)
* with an XML code (string)
*
* @var DOMNode $node
* @var string $xml
*/
public function replaceNodeXML(&$node,$xml) {
$f = $this->dom->createDocumentFragment();
$f->appendXML($xml);
$node->parentNode->replaceChild($f,$node);
}
Copied from the "PHP5 Dom Based Template" article at:
http://blog.axisvista.com/?p=35