Как добавить источник html в DOMElement в PHP?
Есть ли способ добавить источник html в DOMElement? Что-то вроде этого:
$trElement->appendSource("<a href='?select_user=4'>Username</a>");
Он проанализирует этот фрагмент и добавит его.
Ответы
Ответ 1
Вы ищете
- 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();
Ответ 2
Если у вас нет ссылки на document root в области видимости, вы всегда можете получить к нему доступ через ownerDocument
свойство произвольного node:
$frag = $trElement->ownerDocument->createDocumentFragment();
$frag->appendXML("<a href='?select_user=4'>Username</a>");
$trElement->appendChild($frag);
Ответ 3
Да, вы можете сделать это с помощью DOMDocument::createDocumentFragment
:
$fragment = $dom->createDocumentFragment();
$fragment->appendXML('<a href="select_user=4">Username</a>');
$element->appendChild($fragment);
В этом случае было бы проще сделать это с помощью обычного вызова createElement
:
$el = $dom->createElement('a', 'Username');
$el->setAttribute('href', 'select_user=4');
$element->appendChild($el);
В каждом случае $element
является элементом DOM, к которому вы хотите добавить свой код.