2013-02-15 59 views
0

我有一個相當大的HTML文檔,我試圖從中提取信息。我已經弄清楚我可能需要使用DOMDocument對象和xPath。我需要返回特定DIV的內容。好消息是它有一個與之相關的類標籤。壞消息是,它被埋在HTML文檔中的某個非特定位置,在其他幾個DIV層中,並且該位置可能會改變。所以,我期待返回div的內容。PHP:在HTML文檔中搜索特定元素

<div class='target'>Return all of this stuff</div> 

的技巧似乎是,我不知道具體位置,這種特殊的div會在我需要一種方法,只是說「搜索整個DOM與類名的DIV目標'。可能會有多個共同保險,但可能不會。但是,一旦我獲得了可能的元素內容數組,我可以從中獲取它。再次,使用PHP 5.4。

+1

開始你說你想通了,你需要的DomDocument和XPath,爲什麼你沒有嘗試過 – Rob 2013-02-15 03:38:51

回答

2

你需要XPath查詢:

$query = "//div[@class='target']"; 

,你可以通過調用query方法與DOMXPath對象使用。

+0

我已經嘗試了這一點,它?但後來我發現這是由於我犯了一個愚蠢的編程錯誤,我應該失去這兩點或聲望,謝謝你們, – 2013-02-16 19:06:50

0

如果我理解正確,這可以通過本機php字符串處理來完成。

你有沒有嘗試過沿線的東西。

$start = stripos($STRINGYOUARESEARCHING, "<div class='target'>") 
$end= stripos($STRINGYOUARESEARCHING, "</div>",start); 
$contents= substr($STRINGYOUARESEARCHING, $start, $end-$start) 

讓我知道這是不是答案的那種你要找的......我在這裏假設你有HTML中的大塊在它的目標是什麼?

(注意:您可能需要偏移$結束或$通過strlen(<div class='target'>)

+0

不考慮目標div內的子div – 2013-02-15 06:26:23

+0

有你找到了一個解決方案嗎?子div的內容是什麼?有什麼不明確的地方?似乎你應該可以擴展它來遍歷任意數量的子代......如果你告訴我,我會發佈一個更完整的解決方案我更....我花了幾個小時一次搞亂了類似的東西這自己.. – user1833028 2013-02-15 13:49:15

+0

不,這是一個非常糟糕的答案。 div的內容是文本和其他HTML元素,包括其他div。 – 2013-02-20 16:41:44