'relative xpath php

I'm parsing html that looks like this:

  <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>

There are multiple tables like this so I'm trying to loop through them and grab all of the data. I'm not sure how xpath handles queries in php. Currently I'm just trying to extract the EventName from each table.

$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;

}

For the $headerTag query I also tried query("./tr/td/h3", $tableNode). How do I go about doing this relative query?



Solution 1:[1]

Actually, your html is not proper.

Regarding XPATH, you can do this way to target specially to h3 tag:-

/table[@class='linesTbl']/tr[@class='linesHeader']/td/h3

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Siva Charan