如何从PHP中的HTML中获取特定的类ID

时间:2013-02-13 03:56:10

标签: html dom domdocument php

我有一个像这样的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

2 个答案:

答案 0 :(得分:1)

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

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

或者这个:

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

有关PHP使用单引号或双引号以及在引号内转义值的说明,请参阅here

答案 1 :(得分:0)

为了使表现更清晰,请使用此 -

$expression = "/html/body/p[@class='new']";
$result     = $xpath->query($expression);