2017-05-25 4 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) 

をしかし、私はまだ私は同時に2つの項目を選択しないか、nullを取得しますか?

+0

(0、 'div.date')あなたが見つける 'みました - > 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

は動作しません..まだnullを取得します – thomyfarhan

+0

これは動作することが確認できます。 Webページを読み込む際に問題が発生する可能性がありますか? – pguardiario

関連する問題