2012-04-06 93 views
3

我有一個HTML字符串,它可能是這個樣子:PHP DOM:獲取所有文本值

<body> 
    <div> 
    <span class="blah">Monkey </span> 
    <p>breath really <b>stinks</b></p> 
    And I don't like it! 
    </div> 
</body> 

正如你可以看到,還有一些文字正確包含作爲元素中的值,有包含文本節點和其他元素的元素。我希望能夠得到所有文本值在body下(假設body是一個DOMElement,我已經存儲在一個變量中)。

因此,輸出看起來是這樣的:

猴breat真的很糟糕,我不喜歡它!

我該怎麼做? XPath的?正則表達式?魔法?

+0

嘗試魔術,當它感覺,你使用JavaScript。 – Chibuzo 2012-04-06 02:01:30

+0

@jwegner - 你爲什麼要這樣做?什麼是用例? – Flukey 2012-04-06 02:03:19

+1

@Flukey類似於「鏈接密度」的討論[這裏](http://stackoverflow.com/questions/3652657/what-algorithm-does-readability-use-for-extracting-text-from-urls),我會喜歡計算一個HTML表格的密度 – jwegner 2012-04-06 12:08:19

回答

0

如果你不介意使用jQuery,我可能會爲此做出回答。

首先,我們需要抓取content.So使用PHP捲曲爲與呼應content.After你在體內的含量觸發它具有以下行jQuery的功能,

假設所有的文本包含在與ID內容的div

$('#content').text() gives you the required output. 

記得使用jquery委託綁定函數,無論您選擇的事件。

+0

這是PHP的內部,HTML通過cURL收集。不幸的是jQuery不是一個選項。 – jwegner 2012-04-06 12:04:48

+0

我每天都在使用相同的東西。我只是編輯這個答案給你一個完整的圖片 – 2012-04-07 14:43:51

+1

不,實際上,這是不能在前端完成的。從字面上看,_is沒有前端。可以認爲這是一種API函數 - 一種完全在服務器上運行的東西,解析後的結果通過JSON傳遞給用戶。 – jwegner 2012-04-09 12:12:56