我解析HTML,看起來像這樣:相關的XPath PHP
<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查詢我也試過query("./tr/td/h3", $tableNode)
。我該如何去做這個相對查詢?
感謝。那解決了它 – sayhey69 2012-07-15 19:19:59
可能是*位*遲到:什麼是**正確的**查詢,所以?你寫的代碼表明原始查詢不是正確的。 – superjos 2014-09-09 13:15:02
是的,有點晚了,但最初的查詢很可能不是問題,而是從結果對象讀取結果數據。 'query()'返回一個[** DOMNodeList **](http://php.net/DOMNodeList),OP或多或少地期望它返回一個** DOMElement **。 – hakre 2014-09-11 06:46:57