相对xpath php
发布时间:2020-12-13 14:09:30 所属栏目:PHP教程 来源:网络整理
导读:我正在解析看起来像这样的html: table class="linesTbl" tr class="linesHeader" tdh3EventName/h3/td /trtr class="linesColumns" tdDate/tdtd class="contestLine"Description/td /trtr class="linesAlt1" tdTime/tdtdX1/tdtdPrice1/td /trtr class="line
我正在解析看起来像这样的html:
<table class="linesTbl"> <tr class="linesHeader"> <td><h3>EventName</h3></td> </tr><tr class="linesColumns"> <td>Date</td><td class="contestLine">Description</td> </tr><tr class="linesAlt1"> <td>Time</td><td>X1</td><td>Price1</td> </tr><tr class="linesAlt1"> <td> </td><td>X2</td><td>Price2</td></tr> </table> 有这样的多个表,所以我试图遍历它们并获取所有数据.我不确定xpath如何在php中处理查询.目前我只是想从每个表中提取EventName. $doc = new DOMDocument(); @$doc->loadHTML($html); $xpath = new DOMXPath($doc); foreach ($xpath->query("//table[@class = 'linesTbl']") as $tableNode){ $headerTag = $xpath->query(".//h3",$tableNode); echo $headerTag->nodeValue; } 对于$headerTag查询,我也尝试了查询(“./ tr / td / h3”,$tableNode).我该怎么做这个相对查询?
你的xpath表达式已经是相对的:
$headerTag = $xpath->query(".//h3",$tableNode); ^ ^^^^^^^^^^ | relative-to node relative path 但是,这将返回节点列表,而不是单个节点,因此,如果您执行以下操作: echo $headerTag->item(0)->nodeValue; ^^^^^^^^^ 您可以访问所需的元素,查看输出: EventName 我希望这是有帮助的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |