Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DOMCrawler纯文本_Php_Html_Symfony_Xpath - Fatal编程技术网

Php DOMCrawler纯文本

Php DOMCrawler纯文本,php,html,symfony,xpath,Php,Html,Symfony,Xpath,我正在使用Symfony的DomCrawler从网站获取信息。 其中一个页面中有一个包含非html编码属性的文本,如下所示: <a href="some-url.html">Lorem ipsum <<dolor sit>> amet </a> 因此,我的问题是,是否有任何方法可以从节点中获取“纯”文本?我认为您要查找的内容可以通过以下方式完成: $node->filterXPath('my-xpath/a')->text() 您可以在上找到文档

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

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

因此,我的问题是,是否有任何方法可以从节点中获取“纯”文本?

我认为您要查找的内容可以通过以下方式完成:

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


您可以在上找到文档。

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

所以,我的问题是,是否有任何方法可以从节点中获取“纯”文本

是的,有,但是您需要首先修复HTML。你不需要手工操作,顺便说一句,它会自动完美地处理你的案件


在抓取HTML之前,请先整理一下。

谢谢您的回复,我好像忘了提到
$node->text()
方法也会返回一个损坏的HTML。在我的例子中,它只是返回
Lorem Ipsum谢谢你的回复,但在我的例子中它不起作用,因为正如我在描述中所说的,我正在使用symfony的domclawler模块,当我获取页面时,它已经“修复”。此外,如果你说要修复源代码(数据从中爬行的网站),那么它也不是一个解决方案,因为这个网站不是我的,我只是为它编写了一个应用程序,从那里抓取公告,并显示从哪里获取的(这里没有版权问题;)),如果我只是尝试向他们发送反馈以解决问题,这是没有意义的,因为网站本身没有维护很长一段时间,并且包含大量的bug…你可以在加载源代码时修复它。不是在他们的服务器上,而是在进行解析时。例如,使用我命名的tidy扩展名。我试了一下,你要求的方式很容易处理你的案子。你会发现答案中有联系很抱歉,如果答案还不清楚的话。如果您仍然遇到问题,请告诉我,或者我如何在回答中更清楚地说明这一点。
<a href="some-url.html">Lorem ipsum &gt;</a>