我使用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 ></a>
那么,我的问题是是否有任何方法可以从节点中获取"纯"文本
我认为你所寻找的可以通过使用:
$node->filterXPath('my-xpath/a')->text();
您可以在Symfony DOM Crawler文档站点找到相关文档
在GitHub上讨论这个问题后,似乎没有解决'修复'我的问题的办法。唯一的解决方法是修复损坏的html。
那么,我的问题是是否有任何方法可以从节点中获取"纯"文本?
是的,有,但你需要先修复HTML。你不需要手工做这些,顺便说一下,HTML tidy扩展可以完美地自动处理你的情况。
只要整理 HTML在你抓取它。