2014-03-24 70 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

相关问题