我想从这个url制作标题列表: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提供信息。任何帮助都将不胜感激。
根据W3C XHTML 1.0 C.8部分,您必须知道元素的id
属性必须是唯一的。XHTML 1.0是XML 1.0中HTML 4的重新表述,因此HTML4 7.5.2的定义也适用于此。
由于您正在解析的文档被声明为XHTML 1.0,因此您不需要提供所需元素的完整路径,因为table
元素具有id
属性。您可以直接解析此元素:
//table[@id="cat_games"]/tr/td/h2/a
如果你担心表的结构可能会改变(即:最终可能会添加<tbody>
标签),你也可以进行一个更通用的查询:
//table[@id="cat_games"]//h2/a