我想忽略<a>
元素内的<h3>
的内容,而只获取<h3>
的文本。
<h3>
144.000 TL
<a class="emlak-endeksi-link trackClick trackId_emlak-endeksi-link" id="emlakEndeksiLink">
Emlak Endeksi</a>
</h3>
示例:只希望获得144.000 TL,而忽略(Emlak Endeksi)
foreach ($html1->find('div.classifiedInfo h3') as $price) {
$ilanlar['price'] = $price->plaintext;
}
答案 0 :(得分:1)
也许删除<a>
标签会有所帮助:
$str = <<<str
<h3>
144.000 TL
<a class="emlak-endeksi-link trackClick trackId_emlak-endeksi-link" id="emlakEndeksiLink">
Emlak Endeksi</a>
</h3>
str;
$html = str_get_html($str);
// Find first <h3>
$h3 = $html->find('h3', 0);
// Find first <a> inside the <h3>, or use $h3->find('a') to find all of them
$a = $h3->find('a', 0);
// Remove <a> tag
$a->outertext = '';
// Output: "144.000 TL"
print trim($h3->innertext);
答案 1 :(得分:1)
不是非常熟悉简单的html dom,但是...通过http://simplehtmldom.sourceforge.net/manual.htm#frag_find_textcomment选择文本节点应该有帮助吗?
$ilanlar['price'] = $price->find('text', 0)->plaintext;
答案 2 :(得分:0)
您可以通过正则表达式来实现。
preg_match_all('\<h3>([^\n]*\n+)+<a([^\n]*\n+)+<\/h3>\', $content, $output);
echo $output[1];