Как изменить текст элемента HTML на другой элемент в PHP? - PullRequest
0 голосов
/ 08 февраля 2019

Как видно из заголовка, я бы хотел изменить textContent элемента DOM на span, используя PHP.Пример из этого:

<div class="dummy">Here is my content.</div>

к этому:

<div class="dummy"><span class="newSpan"></span></div>

Я пытался установить содержимое пустым, как

$sourceDOMElement->nodeValue = ""; //OR
$sourceDOMElement->textContent = "";

, но никто не работал для некоторыхпричина.После этого я хотел бы добавить нового элемента к элементу с новым диапазоном, который я хотел бы вставить.

Как я мог сделать эту работу?Заранее спасибо!

РЕДАКТИРОВАТЬ: Вот весь мой код, где я должен сделать это.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

попробуйте

$content = '<div class="dummy">aaaaaaa</div>';
$DOM_inner_HTML = new DOMDocument();
$DOM_inner_HTML->loadHTML( mb_convert_encoding( $content, 'HTML-ENTITIES', 'UTF-8' ) );
$content_node = $DOM_inner_HTML->getElementsByTagName('div')->item(0);
$content_node->textContent  = '<span class="newSpan"></span>';
0 голосов
/ 08 февраля 2019

Вы можете установить свойство nodeValue, если хотите установить текстовое содержимое элемента, подобного этому

$el = $dom->getElementById('foo');
$el->nodeValue = 'hello world';

, оно автоматически экранируется <и>, поэтому вы не можете вставить HTML таким образом.

так что вы можете пойти с:

DOMDocument::createDocumentFragment:

$frag = $dom->createDocumentFragment();
$frag->appendXML('<h1>foo</h1>');
$el->appendChild($frag);
...