我想使用PHP 's DOMDocument, so I use a foreach for every table: foreach($_POST[' comparison']解析一个html表作为$ value){},其中我嵌套了下面的代码 . 所以从比较表我想要每行($ value),该值包含一个html表( <table> ...</table>
) . 这是我要解析的表:
<table>
<tbody>
<tr>
<td >.....</td>
<td>....</td>
</tr>
<tr>
<td>....</td>
<td>.....</td>
</tr>
</tbody>
</table>
第二个代码是这样的,我为行创建一个foreach,然后为每一行创建一个索引($ i),在每一行内部另一个foreach,为列添加一个新索引($ j),所以目的是回显每个像这样的每一行的列(第一列 - 第一行,第二列 - 第一行,第一列 - 第二行,第二列 - 第二行......
foreach($_POST['comparison'] as $value) {
echo "<div id='primary' class='content-area'>";
var_dump($value); // check the type in the variable value
$dom = new DOMDocument;
$dom->loadHTML($value);
$dom->preserveWhiteSpace = false;
$tables = $dom->getElementsByTagName('table');
foreach ($tables->getElementsByTagName('tr') as $element1) {
for ($i = 0; $i < $element1->length; $i++) {
echo $element1->item($i)->nodeValue . "\n";
foreach ($element1->getElementsByTagName('td') as $element2) {
for ($j = 0; $j < $element2->length; $j++) {
echo $element2->item($j)->nodeValue . "\n"; }
/* $value_spec[] = $element2->nodeValue + "<br>"; */
}
}
}
echo " </div><!-- content-area -->";
}
}
我按照错误“调用未定义的方法DOMNodeList :: getElementsByTagName()”的说明,即添加item()以访问表的每个单元格,但错误仍然存在 . 如果有人可以帮忙,我将不胜感激 .
2 回答
试试这个,
demo