如何使用 PHP 简单 HTML DOM 解析器找到 HTML 文件中的最后一个元素?

问题描述 投票:0回答:4

根据 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

php html parsing dom
4个回答
9
投票

好吧,自从

// 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

仅查找返回节点列表中的最后一个同级。


5
投票

来自手册:

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

0
投票

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

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


-2
投票

最初的帖子问题是“应该用什么代替 0?”

答案:-1

© www.soinside.com 2019 - 2024. All rights reserved.