从PHP DOM获取元素并更改其值

时间:2012-03-30 03:26:58

标签: php zend-framework dom zend-dom-query

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

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

如何修改$element div中显示的text / content / html,然后将更改保存到$dom$html,以便我可以打印修改后的html。知道怎么做吗?

1 个答案:

答案 0 :(得分: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();

看看PHP Doc for DOMElement,了解如何改变dom:

http://www.php.net/DOMElement