(DOMDocument / DOMXPathを使用して)行ではなく列でhtmlテーブルtdをどのように解析しますか?テーブルの列に基づいてtd要素を解析することを意味します。どのtrにあるかではありませんか?
1032 次
1 に答える
2
HTML テーブルは、列ではなく行でグループ化されます。行を反復し、行を適切な配列に割り当て、キーで同期するのが最善の策です。
例:
<?php
$html = <<<HTML
<table id="target">
<tr>
<td>Col1</td>
<td>Col2</td>
<td>Col3</td>
</tr>
<tr>
<td>Col1</td>
<td>Col2</td>
<td>Col3</td>
</tr>
<tr>
<td>Col1</td>
<td>Col2</td>
<td>Col3</td>
</tr>
<tr>
<td>Col1</td>
<td>Col2</td>
<td>Col3</td>
</tr>
</table>
HTML;
$document = new DOMDocument();
$document->loadHTML($html);
$table = $document->getElementById("target");
$tr_list = $table->getElementsByTagName("tr");
$tr_count = 0;
$columns = array();
foreach ($tr_list as $tr) {
/** @var $tr DOMElement */
$td_list = $tr->getElementsByTagName("td");
$tr_count++;
$td_count = 0;
foreach ($td_list as $td) {
$columns[$tr_count][$td_count] = $td;
$td_count++;
}
}
print_r($columns);
于 2012-06-25T16:15:50.080 に答える