我正在使用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>
所以,我的问题是,是否有任何方法可以从节点中获取“普通”文本?
答案 0 :(得分:1)
我认为您正在寻找的内容可以通过以下方式实现:
$node->filterXPath('my-xpath/a')->text();
答案 1 :(得分:0)
在GitHub上讨论这个问题之后,似乎没有“修复”我的问题的解决方案。唯一的解决方法是修复损坏的html。
答案 2 :(得分:0)
所以,我的问题是,是否有任何方法可以从节点中获取“普通”文本?
是的,但您需要先修复HTML。顺便说一句,您不需要手动执行此操作,HTML tidy extension会自动完美地处理您的案例。
在抓取HTML之前,只需整理。