Получение элемента из PHP DOM и изменение его значения - PullRequest
1 голос
/ 30 марта 2012

Я использую PHP / Zend для загрузки html в DOM, а затем я получаю конкретный идентификатор div, который хочу изменить.

$dom = new Zend_Dom_Query($html);
$element = $dom->query('div[id="someid"]');

Как изменить текст / контент / html, отображаемый внутри этого $element div, а затем сохранить изменения в $dom или $html, чтобы я мог распечатать измененный html. Есть идеи как это сделать?

1 Ответ

3 голосов
/ 30 марта 2012

Zend_Dom_Query предназначен только для запросов к dom, поэтому он не предоставляет сам по себе интерфейс для изменения dom и его сохранения, но он предоставляет объекты PHP Native DOM, которые позволят вам это сделать.Примерно так должно работать:

$dom = new Zend_Dom_Query($html);
$document = $dom->getDocument();
$elements = $dom->query('div[id="someid"]');

foreach($elements AS $element) {
    //$element is an instance of DOMElement (http://www.php.net/DOMElement)

    //You have to create new nodes off the document
    $node = $document->createElement("div", "contents of div");
    $element->appendChild($node)
}

$newHtml = $document->saveXml();

Взгляните на PHP Doc для DOMElement, чтобы получить представление о том, как вы можете изменить dom:

http://www.php.net/DOMElement

...