DOMCrawler plain text


DOMCrawler plain text

我使用Symfony的DomCrawler从网站获取信息。
在其中一个页面中有一个包含非html编码属性的文本,如下所示:

<a href="some-url.html">Lorem ipsum <<dolor sit>> amet </a>

当我尝试使用filterXPath方法从a标签抓取文本时,我得到Lorem ipsum <,因为我认为它的行为像破碎的html标签这样的符号,只是忽略它们。

另外,当我尝试使用$node->filterXPath('my-xpath/a')->html(),我也得到破碎的html像下面的例子:

<a href="some-url.html">Lorem ipsum &gt;</a>

那么,我的问题是是否有任何方法可以从节点中获取"纯"文本

我认为你所寻找的可以通过使用:

$node->filterXPath('my-xpath/a')->text();

您可以在Symfony DOM Crawler文档站点找到相关文档

在GitHub上讨论这个问题后,似乎没有解决'修复'我的问题的办法。唯一的解决方法是修复损坏的html。

那么,我的问题是是否有任何方法可以从节点中获取"纯"文本?

是的,有,但你需要先修复HTML。你不需要手工做这些,顺便说一下,HTML tidy扩展可以完美地自动处理你的情况。

只要整理 HTML在你抓取它。