2014-03-24 98 views
0

我使用的simple_html_dom parser,我想從獲取的HTML代碼,看起來像這樣的數據:找到所有元素除了那些與某些類simple_html_dom.php

<pre class="root"> 
    <span class="B bgB"></span> 
    <span class="B bgB"></span> 
    <span class="B bgB"></span> 
    <span class="B bgB"></span> 
    <span class="W"></span> 
    <span class="Y DH"> </span> 
    <span class="Y DH">Some text</span> 
</pre> 

等。

但我只想從那裏得到內容,而不是的bgB類。到目前爲止,我有這樣的代碼:

$elements = $html->find('pre.root span[class!=bgB]'); 

但是所有的跨度是牽強和以後打印,不僅是那些沒有BGB類。我怎樣才能做到這一點?

+0

與$元素= $ HTML的「發現('pre.root跨度[類嘗試!= B]'); – Gunaseelan

+0

用simple_html_dom解析器做到這一點的唯一方法是查找所有跨度,然後檢查它們的類值if(strpos($ span-> class,'bgB')=== false){...}' – Enissay

回答

2

,不能用簡單的做,但如果您切換到this one可以使用CSS :not僞:

$html = str_get_html($str); 
$elements = $html->find('pre.root span:not(.bgB)'); 
+0

謝謝!你知道如何排除兩個類嗎?例如bgB和bgY。 –

+1

你應該能夠鏈接':不''':跨度:不是(.bgB):不是(.bgY)' – pguardiario

+0

@pguardiario感謝您的答案。我們如何檢索一個多於一個class或id名稱的div值?使用簡單的html dom – Gunaseelan

相關問題