相对xpath php

前端之家收集整理的这篇文章主要介绍了相对xpath php前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在解析看起来像这样的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>&nbsp;</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

我希望这是有帮助的.

猜你在找的PHP相关文章