Как добавить исходный HTML к элементу DOME в PHP? - PullRequest
10 голосов
/ 20 января 2011

Есть ли способ добавить исходный html в DOMElement? Примерно так:

$trElement->appendSource("<a href='?select_user=4'>Username</a>");

Он проанализирует этот фрагмент и добавит его.

Ответы [ 3 ]

15 голосов
/ 20 января 2011

Вы ищете

- DOMDocumentFragment::appendXML - Добавить необработанные данные XML

Пример из руководства:

$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML(); 
6 голосов
/ 20 января 2011

Если у вас нет ссылки на корень документа в области видимости, вы всегда можете получить к нему доступ через свойство ownerDocument произвольного узла:

$frag = $trElement->ownerDocument->createDocumentFragment();
$frag->appendXML("<a href='?select_user=4'>Username</a>");
$trElement->appendChild($frag);
1 голос
/ 20 января 2011

Да, вы можете сделать это с помощью DOMDocument::createDocumentFragment:

$fragment = $dom->createDocumentFragment();
$fragment->appendXML('<a href="select_user=4">Username</a>');
$element->appendChild($fragment);

В этом случае было бы проще сделать это с обычным createElement call:

$el = $dom->createElement('a', 'Username');
$el->setAttribute('href', 'select_user=4');
$element->appendChild($el);

В каждом случае $element - это элемент DOM, к которому вы хотите добавить свой код.

...