如何使用dom和php获取td值
我有一张这样的桌子:如何使用dom和php获取td值,php,dom,Php,Dom,我有一张这样的桌子: <table> <tr> <td>Values</td> <td>5000</td> <td>6000</td> </tr> </table> 价值观 5000 6000 我想得到td的内容。但我没办法 <?PHP $dom = new DOMDocument(); $dom->loadHTML("figures.
<table>
<tr>
<td>Values</td>
<td>5000</td>
<td>6000</td>
</tr>
</table>
价值观
5000
6000
我想得到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";
}
?>
您应该使用for循环来显示包含
id
属性的多个td
,这样每个td
都必须在html文件中表示不同的id
比如说
for($i=1;$i<=10;$i++){
echo "<td id ='id_".$i."'>".$tdvalue."</td>";
}
对于($i=1;$i此代码存在多个问题:
要从HTML文件加载,您需要使用DOMDocument::loadHTMLFile()
,而不是像您所做的那样使用loadHTML()
。使用$dom->loadHTMLFile(“figures.HTML”)
您不能像(在$table
上)那样在DOMNodeList
上使用getElementsByTagName()
。它只能在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";
}
}
$dom=newdomdocument();
$dom->loadHTMLFile(“figures.html”);
$tables=$dom->getElementsByTagName('table');
//找到所需的正确元素,并将其存储在$table中
// ...
//假设你想要第一张桌子
$table=$tables->item(0);
foreach($table->childNodes作为$td){
如果($td->nodeName=='td'){
echo$td->nodeValue,“\n”;
}
}
或者,您可以直接搜索标记名为td
的所有元素(尽管我确信您希望以特定于表的方式执行此操作。有id,但没有s的id。无论如何,我应该使用标记而不是id。getElementsByTagName
始终返回DOMNodeList
,因此您必须执行$tables->项(0)->getElementsByTagName('td')