如何使用 PHP Simple HTML DOM Parser 在 HTML 文件中找到最后一个 <div class>?
Posted
技术标签:
【中文标题】如何使用 PHP Simple HTML DOM Parser 在 HTML 文件中找到最后一个 <div class>?【英文标题】:How do I find the last <div class> in an HTML File with PHP Simple HTML DOM Parser? 【发布时间】:2011-06-15 01:35:16 【问题描述】:根据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>
如果我想在<div class="hello">
的last 实例中插入'foo',假设HTML 代码有很多<div class="hello">
的实例。
应该用什么替换0
?
【问题讨论】:
您已经提出了 18 个问题并接受了其中仅 7 个问题的答案。改进此统计数据将导致人们更有兴趣帮助您! 【参考方案1】:好吧,因为
// Find all anchors, returns a array of element objects
$ret = $html->find('whatever');
返回一个包含所有<whatever>
元素的array
,您可以使用php 的常规数组函数获取最后一个元素,例如end
$last = end($ret);
如果 SimpleHtmlDom 完全实现 CSS3 Selectors 进行查询,您也可以修改您的查询以使用
:last-of-type
只查找返回的节点列表中的最后一个兄弟节点。
【讨论】:
【参考方案2】:来自手册:
// Find lastest anchor, returns element object or null if not found (zero based)
$ret = $html->find('a', -1);
【讨论】:
【参考方案3】:lastChild 属性返回元素的最后一个子对象。
编辑: 显然不是 JQuery :) 请参阅 W3C 选择器参考:http://www.w3.org/TR/css3-selectors/#last-child-pseudo
【讨论】:
这不是 JQuery 选择器。这只是选择器。这是 W3C 规范。 嗯,DOM 中还有一个 lastChild 属性,所以无论如何它都是可选的。请参阅此处:w3schools.com/jsref/dom_obj_all.asp 不要明白 -1 的用途。 @crowicked:可能是因为忽略了标签和指向 exactly OP 正在使用的链接,然后出于某种原因假设为 jQuery。 lastChild 是一个很好的呼喊。 我没有 dv,但如果您想链接到正确的规格,请使用 w3.org/TR/css3-selectors。 w3schools 以贫乏且往往是虚假的材料而闻名。此外,w3schools 不隶属于 w3c。 就像我说的,我没有 dv,但作为一般提示:如果您知道您的答案有问题,请纠正它。这让人们有机会再次举起 dv。不能保证他们会这样做,但它会增加你的机会。以上是关于如何使用 PHP Simple HTML DOM Parser 在 HTML 文件中找到最后一个 <div class>?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP Simple HTML DOM Parser 在 HTML 文件中找到最后一个 <div class>?
从 Simple Html Dom 中排除不需要的 html - PHP
使用 PHP Simple HTML DOM Parser 查找和删除 html 标签