在PHP中使用XPath和DOM获取表格单元格TD值

时间:2013-08-13 20:55:29

标签: php dom xpath

我需要通过DOM / PHP访问表格单元格值。该网页加载到$ myHTML中。我已将XPath识别为:

//*[@id="main-content-inner"]/div[2]/div[1]/div/div/table/tbody/tr/td[1]

我想获取单元格中值的文本如下:

$dom = new DOMDocument();
$dom->loadHTML($myHTML);    
$xpath = new DOMXPath($dom);    
$myValue = $xpath->query('//*[@id="main-content-inner"]/div[2]/div[1]/div/div/table/tbody/tr/td[1]');

echo $myValue->nodeValue;

但我得到“未定义的属性:DOMNodeList :: $ nodeValue错误。如何检索此表格单元格的值?我已经尝试了stackoverflow中的各种技术而没有运气。”

1 个答案:

答案 0 :(得分:1)

DOMXPath :: query()返回一个DOMNodeList,即使只有一个匹配。

如果您确定在那里有匹配,可以使用

echo $myValue->item(0)->nodeValue;

但是如果你想要防弹,你最好提前检查长度,例如

if ($myValue->length > 0) {
    echo $myValue->item(0)->nodeValue;
} else {
    //No such cell. What now?
}