Estoy análisis de HTML que tiene este aspecto:relativa php XPath
<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>
Hay varias tablas como este, así que estoy tratando de bucle a través de ellos y agarrar todos los datos. No estoy seguro de cómo xpath maneja las consultas en php. Actualmente estoy tratando de extraer el EventName de cada tabla.
$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;
}
Para la consulta de $ headerTag, también intenté query("./tr/td/h3", $tableNode)
. ¿Cómo hago esta consulta relativa?
gracias. que lo resolvió – sayhey69
probablemente un * bit * tarde: ¿cuál es la consulta ** correcta **, entonces? El código que escribió sugiere que la consulta original no es la correcta. – superjos
Sí, un poco tarde, pero lo más probable es que la consulta original no fuera el problema, sino la lectura de los datos de resultado del objeto de resultado. 'query()' devuelve un [** DOMNodeList **] (http://php.net/DOMNodeList), el OP más o menos esperaba que devolviera un solo ** DOMElement **. – hakre