2012-04-06 39 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