0

我有一个这样的 HTML 文件。

<html>
<body>
.....
.....
<p class="new">
This is text <a href>link </a>
</p>
<p class="new">
More text here.
</p>
<p class="new">
More text here.
</p>
</body>
</html>

我只想得到如下文本:

这是文字链接。更多文字在这里。更多文字在这里。我该如何接近。我试过了

$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//p[contains(@class,'new')]'); 

没有成功。

错误:语法错误,意外的 T_STRING

4

2 回答 2

1

您正在使用单引号创建用作query方法参数的字符串,并将其嵌入到类名的字符串中。您需要转义内部引号或从单引号切换到双引号。尝试这个:

$nodes = $xpathsearch->query('//p[contains(@class,"new")]'); 

或这个:

$nodes = $xpathsearch->query('//p[contains(@class,\'new\')]'); 

有关使用单引号或双引号以及在引号内转义值的 PHP 说明,请参见此处。

于 2013-02-13T04:25:23.560 回答
0

为了使其在表示中更清晰,请使用此 -

$expression = "/html/body/p[@class='new']";
$result     = $xpath->query($expression);
于 2013-02-13T04:07:45.270 回答