2017-05-25 90 views
0

這是我的問題,我想從使用HTML DOM的HTML獲取文本。PHP簡單的HTML DOM解析器:選擇多個項目

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

我想要得到的文字是 「Kamis,25美2017年| 14:49 WIB」。這裏是我的嘗試:

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

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

但是我還是空,我如何在同一時間選擇兩個項目?

+0

你試過'找到( 'div.date',0) - > plaintext' – Danijel

+0

@Danijel是的,仍然得到空。 – thomyfarhan

回答

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

0

嘗試這樣做

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

+0

無法正常工作..仍然無效 – thomyfarhan

+0

我可以證實這一點。也許加載網頁時出現問題? – pguardiario