tags:

views:

627

answers:

1

Is there a way to create a node that has mixed XML content in it with the PHP DOM?

+3  A: 

If I understood you correctly you want something similar to innerHTML in JavaScript. There is a solution to that:

$xmlString = 'some <b>mixed</b> content';

$dom = new DOMDocument;
$fragment = $dom->createDocumentFragment();
$fragment->appendXML($xmlString);
$dom->appendChild($fragment);
// done

To sumarize. What you need is:

Although you didn't asked about it I'll tell you how to get the string representation of a DOM node as opposed to the whole DOM document:

// for a DOMDocument you have
$dom->save($file);
$string = $dom->saveXML();

$dom->saveHTML();
$string = $dom->saveHTMLFile($file);

// For a DOMElement you have
$node = $dom->getElementById('some-id');

$string = $node->C14N();
$node->C14NFile($file);

Those two methods are currently not documented.

Ionuț G. Stan