我想从此网址制作标题列表: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信息。任何帮助将不胜感激。
答案 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