2017-06-04 100 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; 
}