我正在使用"PHP简单HTML DOM解析器“库,并期待找到基于其文本值(纯文本)的元素。
例如,我需要使用值"Red“查找span元素。
<span class="color">Red</span>我期望下面的代码可以工作,但似乎它只是替换了值,而不是搜索它。
$brand = $html->find('span',0)->plaintext='Red';我阅读了手册,我也试图在库代码本身,但无法找到解决方案,如果我错过了什么,或它只是不可能通过简单的Html DOM解析器。
附注:请注意,我知道其他方式,如正则表达式。
发布于 2019-11-27 02:53:23
使用$html->find('span', 0)将找到第N个跨度,在本例中n为零。
使用$html->find('span',0)->plaintext='Red';会将明文设置为Red
如果要查找文本为Red的元素,可以使用循环并省略0来查找所有跨度。
例如,使用innertext而不是明文:
$spansWithRedText = [];
foreach($html->find('span') as $element) {
if ($element->innertext === "Red") {
$spansWithRedText[] = $element;
}
}https://stackoverflow.com/questions/59038295
复制相似问题