Как я могу получить значения td с помощью dom и php

У меня есть таблица такая:

<table> <tr> <td>Values</td> <td>5000</td> <td>6000</td> </tr> </table> 

И я хочу получить контент td. Но я не мог справиться с этим.

 <?PHP $dom = new DOMDocument(); $dom->loadHTML("figures.html"); $table = $dom->getElementsByTagName('table'); $tds=$table->getElementsByTagName('td'); foreach ($tds as $t){ echo $t->nodeValue, "\n"; } ?> 

С этим кодом возникает несколько проблем:

  1. Для загрузки из HTML-файла вам необходимо использовать DOMDocument::loadHTMLFile() , а не loadHTML() как вы это делали. Используйте $dom->loadHTMLFile("figures.html") .
  2. Вы не можете использовать getElementsByTagName() в DOMNodeList как вы это делали (в $table ). Его можно использовать только в DOMDocument .

Вы могли бы сделать что-то вроде этого:

 $dom = new DOMDocument(); $dom->loadHTMLFile("figures.html"); $tables = $dom->getElementsByTagName('table'); // Find the correct <table> element you want, and store it in $table // ... // Assume you want the first table $table = $tables->item(0); foreach ($table->childNodes as $td) { if ($td->nodeName == 'td') { echo $td->nodeValue, "\n"; } } 

Кроме того, вы можете просто найти все элементы с именем тега td (хотя я уверен, что вы хотите сделать это с помощью таблицы.

Вы должны использовать цикл for для отображения множественных td's с атрибутами id в нем, так что каждый td должен означать другой id в html-файле

например

 for($i=1;$i<=10;$i++){ echo "<td id ='id_".$i."'>".$tdvalue."</td>"; } 

а затем снова вы можете получить значения td , просто перебирая другой для цикла через getElementById