这个XPath查询有什么问题?

时间:2011-06-11 14:21:31

标签: php xpath curl

我想从此网址制作标题列表:http://www.2dplay.com/action-games.htm

我的查询如下:

 $gamelist = $xpath->query('//div[@id="wrapper"]//div[@id="body_wrap"]//div[@id="content"]//
table[@id="cat_games"]//tbody//tr//td//h2//a');
    foreach($gamelist as $e){
        echo $e->nodeValue;
        echo "<br/>";
    }

没有结果。如果我将查询关闭到表[@ id =“cat_games”],它会在一个节点中提供每个txt信息。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

根据W3C XHTML 1.0 C.8 section,您必须知道元素的id属性必须是唯一的。 XHTML 1.0是XML 1.0 中HTML 4的重构,因此HTML4 7.5.2 definition也适用于此。

由于您正在解析的文档被声明为XHTML 1.0,因此您不需要提供所需元素的完整路径,因为table元素具有id属性。您可以直接解决此元素:

//table[@id="cat_games"]/tr/td/h2/a

如果您担心表的结构可能会发生变化(即:最终可能会添加<tbody>标记),您还可以进行更通用的查询:

//table[@id="cat_games"]//h2/a