用php domdocument获取一个完整的表并打印出来

时间:2011-09-15 10:06:32

标签: php domdocument

我想使用php domddocument从给定的URL获取一个完整的html表,其id ='myid'并将其打印到我们的网页上,我该怎么做?

我正在尝试使用以下代码来获取表格,但我无法获取trs(表格行)和tds(表格数据)以及其他内部HTML。

$xml = new DOMDocument();

@$xml->loadHTMLFile($url);
foreach($xml->getElementById('myid') as $table)
{
  // now how to get tr and td and other element ?
  // i am getting other element like :-
   $links = $table->getElementsByTagName('a');
   foreach($links as $innerAnchor)
  {
    //doing something with anchor tag...
   }

}

需要帮助。

我是php domddocument的新手。

非常感谢。

1 个答案:

答案 0 :(得分:4)

正如我评论的那样,最好不要使用getElementById。更好地分析我的测试样本;它的工作原理

$html = "<table ID='myid'><tr><td>1</td><td>2</td></tr><tr><td>4</td><td>5</td></tr><tr><td>7</td><td>8</td></tr></table>";

$xml = new DOMDocument();
$xml->validateOnParse = true;
$xml->loadHTML($html);

$xpath = new DOMXPath($xml);
$table =$xpath->query("//*[@id='myid']")->item(0);

// for printing the whole html table just type: print $xml->saveXML($table); 

$rows = $table->getElementsByTagName("tr");

foreach ($rows as $row) {
  $cells = $row -> getElementsByTagName('td');
  foreach ($cells as $cell) {
    print $cell->nodeValue; // print cells' content as 124578
  }
}