2017-06-04 67 views
0

我试图使用simple_html_dom通过它的内容获取元素。这样做的原因是,我刮有类似内容的页面:PHP simple_html_dom按内容获取元素

<dl> 
    <dt>Variable: </dt> 
    <dd>Value</dd> 
    <dt>Another variable> </dt> 
    <dd>Value</dd> 
</dl> 

现在我想分析某些变量和它们的值,所以我需要做一个

$html->find(dt[contains=Variable: ]) 

还是什么像那样,如果你知道我的意思。这可能吗?

+1

那里没有内置功能,发现过滤器只能用于属性没有别的,所以你需要的foreach所有的,然后过滤它们在自己的 – Kazz

+0

OK谢谢你让我知道。我设法通过获得所有dt-dd组合将所有dt-dd组合放入数组,然后使用我需要的组合来解决问题。使用'next_sibling()'选择器,我能够确保获得属于dt的dd ;-)。 ($ html-> find('dt')as $ prop){$ array [$ prop-> plaintext] = $ prop-> next_sibling() - > plaintext; }' –

+0

把你的新代码放在答案中,并接受它作为最佳答案 – RST

回答

0

感谢@Kazz,我的想法是循环遍历所有的dt,并将它们全部放在一个关联数组中,并将其与dd的值一起放入一个关联数组中。谢谢!

foreach($html->find('dt') as $prop){ 
    $array[$prop->plaintext]= $prop->next_sibling()->plaintext; 
}