PHP简单HTML DOM解析器:选择多个项目

时间:2017-05-25 09:31:27

标签: php html simple-html-dom

这是我的问题,我想使用HTML DOM从HTML获取文本。



<div class="smalldesc">
    <div itemprop="datePublished" class="date">Kamis, 25 Mei 2017 | 14:49 WIB</div>
    <div itemprop="author" itemscope itemtype="http://schema.org/Person" class="author">Oleh : <b></b><b>...</b></div>
</div>
&#13;
&#13;
&#13;

我想要的文字是&#34; Kamis,25 Mei 2017 | 14:49 WIB&#34;。在这里我尝试了:

$data->find('div[itemprop=datePublished class=date]',0)

$data->find('div[itemprop="datePublished" class="date"]',0)

但我仍然无效,我如何同时选择两个项目?

2 个答案:

答案 0 :(得分:0)

尝试这样做

$data->find('.date');

答案 1 :(得分:0)

简单HTML DOM解析器不提供选择具有标识两个或多个属性的元素的功能。说,div[itemprop=datePublished class=date]被视为选择器类的垃圾。

我根本不推荐使用这个库,而在解析DOM时有内置的,更具表现力和简单的方法:DOMXPath

$dom = new DOMDocument();
$dom->loadHTML($html);
$dox = new DOMXPath($dom);
$dateEl = $dox->query("//div[@itemprop='datePublished'][@class='date']")->item(0);

echo $dateEl->textContent; // Kamis, 25 Mei 2017 | 14:49 WIB

PHP live demo