В DOM вы используете методы объекта документа для создания узла и методы родительского узла для вставки / добавления его в иерархию.
DOMDocument
имеет create*
методы для различных типов узлов (элемент, текст, раздел cdata, комментарий, ...). Родительские узлы (элемент, документ, фрагмент) имеют такие методы, как appendChild
и insertBefore
для их добавления / удаления.
Xpath может использоваться для извлечения узлов из DOM.
$document = new DOMDocument;
$document->preserveWhiteSpace = FALSE;
$document->loadXML($xmlString);
$xpath = new DOMXpath($document);
// fetch the first Data element inside the Report document element
foreach ($xpath->evaluate('/Report/Data[1]') as $data) {
// create the name element and append it
$name = $data->appendChild($document->createElement('name'));
// create a node for the text content and append it
$name->appendChild($document->createTextNode('Vivian'));
}
$document->formatOutput = TRUE;
echo $document->saveXML();
Выход:
<?xml version="1.0" encoding="UTF-8"?>
<Report>
<Data>
<id>87236</id>
<purchase>3</purchase>
<address>XXXXXXXX</address>
<name>Vivian</name>
</Data>
</Report>