2009-12-19 132 views
0

我已經完成了此操作,但無法找到我的代碼片段。PHP DOM - 如何獲取包含超鏈接的span標記內的內容

我想解析一個html文件,並將所有內容放入瀏覽器中,位於某些span標籤之間。還有其他的我不想要的span標籤,所以我想我會將解析限制爲只有具有相同css類的span標籤。有人可以給我一個如何做到這一點的例子嗎?謝謝。

$tags = $doc->getElementsByTagName('span'); 

這是HTML的單行我試圖解析

<span class='close'><a href="bla.com/test.htm">test row</a></span> 

回答

0

第一次嘗試(未經測試):

$elts = $doc->getElementsByTagName('span'); 
foreach ($elts as $elt) 
    { 
    $className = $elt->getAttribute('class'); 
    if (array_search('close', explode(' ', $className))) 
     { 
     // Do things with $elt since it matches. 
     } 
    } 
+0

嘿達斯汀,感謝您的幫助。我幾乎可以肯定,有一種方法可以將css類名添加到「getElementsByTagName」,而不必使用正則表達式。如果我不能從這裏得到任何人的語法,我一定會用你的建議 – John 2009-12-19 00:34:10

+0

編輯原始答案。自從我使用PHP以來已經有一段時間了。 – Dustin 2009-12-19 00:42:14

+0

哥們,謝謝。有用。我修改你的代碼來使用in_array()而不是array_search,因爲我有一個關聯數組,array_search不起作用。除此之外,它效果很好。 – John 2009-12-19 00:52:27

0

在我看來,體驗它可以由getElementsByTagName()完成?只需使用一些ajax-y函數來調用它,並且你有你的DOM元素:)

+0

嘿,本,我最終想用這個腳本作爲cron作業運行,所以AJAX將不起作用,因爲AJAX只能在瀏覽器中運行。目前,我正在使用瀏覽器進行測試。 – John 2009-12-19 00:42:36