如何使用PHP Simple HTML DOM Parser在HTML文件中找到最后一个<div class =“”>?</div>

时间:2011-01-25 09:10:23

标签: php html parsing dom

根据SIMPLE HTML DOM PARSER的文档(在“如何修改HTML元素”选项卡下),此代码查找<div class="hello">的第一个实例:

$html = str_get_html('<div class="hello">Hello</div><div class="world">World</div>');

$html->find('div[class=hello]', 0)->innertext = 'foo';

echo $html; // Output: <div class="hello">foo</div><div class="world">World</div>

如果我想将{foo'插入<div class="hello"> last 实例,假设HTML代码有很多<div class="hello">的实例,该怎么办。

应该替换0

3 个答案:

答案 0 :(得分:8)

好吧,因为

// Find all anchors, returns a array of element objects
$ret = $html->find('whatever');

返回保存所有array元素的<whatever>,您可以使用PHP的常规数组函数获取最后一个元素,例如end

$last = end($ret);

如果SimpleHtmlDom完全实现CSS3 Selectors进行查询,您还可以修改您的查询以使用

:last-of-type

只找到返回的节点列表中的最后一个兄弟。

答案 1 :(得分:3)

从手册:

// Find lastest anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', -1); 

答案 2 :(得分:0)

lastChild 属性返回元素的最后一个子对象。

编辑: 显然不是JQuery :) 请改为参考W3C选择器参考:http://www.w3.org/TR/css3-selectors/#last-child-pseudo