Php 使用DOM HTML获取值

Php 使用DOM HTML获取值,php,dom,Php,Dom,我想获取HTML页面中第九个表元素的所有td 我从这个开始,但我不知道如何完成: define('GLPI_ROOT', '..'); $content = GLPI_ROOT . "/front/yourpage.html"; $dom = new DOMDocument(); @$dom->loadHTML($content); $xpath = new DOMXPath($dom); $attbs = $xpath->query("//table td"); fo

我想获取HTML页面中第九个
元素的所有
td

我从这个开始,但我不知道如何完成:

define('GLPI_ROOT', '..');
$content = GLPI_ROOT . "/front/yourpage.html";
$dom = new DOMDocument();
@$dom->loadHTML($content);      
$xpath = new DOMXPath($dom);

$attbs = $xpath->query("//table td");
foreach($attbs as $a) { 
    print $a->nodeValue;
}
我也试过这个,但没用:

$dom = new DOMDocument();
$dom->loadHTMLFile("yourpage.html");
$tables = $dom->getElementsByTagName('table');
$table = $tables->item(8);

foreach ($table->childNodes as $td) {
  if ($td->nodeName == 'td') {
    echo $td->nodeValue, "\n";
    echo "<script type=\"text/javascript\"> alert('".$td->nodeValue."');</script>";
  }
}

第一个不起作用,因为您似乎不了解XPath是如何工作的,但第二个可能是更好的选择


也就是说,
什么时候是
的第一级孩子?你可以在
$table
上再次使用
getElementsByTagName
,那会很好。

tnks我的兄弟,你说((在$table上再次使用getElementsByTagName))你能写吗?plz,我想要的是通过表中的每个
td
元素循环,并获取值。我得到这个错误:警告:DOMDocument::loadHTMLFile():htmlParseEntityRef:应为“;”在yourpage.html中的第33行,该错误表示您的html输入无效。很可能您有一个未被替换的
&
。您能更具体一点吗?请看
yourpage.html
中的第33行,您应该有一个
&
,应该是
&
Warning: DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';' in yourpage.html, line: 33