Измените innerHTML php DOMElement [дубликат]

10
задан iavian 6 May 2010 в 02:47
поделиться

3 ответа

Я думаю, что лучшее, что вы можете сделать, это придумать функцию, которая будет брать DOMElement, который вы хотите изменить InnerHTML, копировать его и заменять.

На очень грубом PHP:

function replaceElement($el, $newInnerHTML) {
    $newElement = $myDomDocument->createElement($el->nodeName, $newInnerHTML);
    $el->parentNode->insertBefore($newElement, $el);
    $el->parentNode->removeChild($el);

    return $newElement;
}

Это не учитывает атрибуты и вложенные структуры, но я думаю, что это поможет вам на вашем пути.

1
ответ дан 3 December 2019 в 22:35
поделиться

Взгляните на эту библиотеку PHP Simple HTML DOM Parser http://simplehtmldom.sourceforge.net/

Она выглядит довольно простой. Вы можете изменить innertextсвойство ваших элементов. Это может помочь.

0
ответ дан 3 December 2019 в 22:35
поделиться

Недавно мне понадобилось сделать это для одного проекта, и в итоге у меня получилось расширение DOMElement: http://www.keyvan.net/2010/07/javascript-like-innerhtml-access-in-php/

Вот пример, показывающий его использование:

<?php
require_once 'JSLikeHTMLElement.php';
$doc = new DOMDocument();
$doc->registerNodeClass('DOMElement', 'JSLikeHTMLElement');
$doc->loadHTML('<div><p>Para 1</p><p>Para 2</p></div>');
$elem = $doc->getElementsByTagName('div')->item(0);

// print innerHTML
echo $elem->innerHTML; // prints '<p>Para 1</p><p>Para 2</p>'

// set innerHTML
$elem->innerHTML = '<a href="http://fivefilters.org">FF</a>';

// print document (with our changes)
echo $doc->saveXML();
?>
8
ответ дан 3 December 2019 в 22:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: