1

我正在使用 PHP/Zend 将 html 加载到 DOM 中,然后我得到一个我想要修改的特定 div id。

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

如何修改显示在该$elementdiv 内的文本/内容/html,然后将更改保存到$domor$html以便我可以打印修改后的 html。知道怎么做吗?

4

1 回答 1

3

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();

查看 DOMElement 的 PHP 文档,了解如何更改 dom:

http://www.php.net/DOMElement

于 2012-03-30T03:46:43.613 回答