0

我有以下脚本循环遍历 HTML 表并从中获取值,然后在 td.xml 中返回表的值。

$tds = $dom->getElementsByTagName('td');

                // New dom
                $dom2 = new DOMDocument;

                $x = 1;
                // Loop through all the tds printing the value with a new class
                foreach($tds as $t) {
                    if($x%2 == 1)
                        print "</tr><tr>";

                    $class = ($x%2 == 1) ? "odd" : "even";

                    var_dump($t->textContent);

                    print "<td class='$class'>".$t->textContent."</td>";
                    $x++;
                }

但是 textContent 似乎正在剥离 HTML 标签(例如,它是一个<p></p>包装标签)。我怎样才能让它给我价值?

还是有另一种方法可以做到这一点?我有以下html

<table>
<tr>
<td>q1</td>
<td>a1</td>
</tr>
<tr>
<td>q2</td>
<td>a2</td>
</tr>
</table>

我需要让它看起来像

<table>
<tr>
<td class="odd">q1</td>
<td class="even">a1</td>
</tr>
<tr>
<td class="odd">q2</td>
<td class="even">a2</td>
</tr>
</table>

它总是看起来完全相同(减去额外的元素行和变化的值)。

有什么帮助吗?

4

1 回答 1

0

根据MDN,这是 textContent 的预期行为。

您只需将类添加到tdDomDocument 中的 s

$tds = $dom->getElementsByTagName('td');
$x = 1;
foreach($tds as $td) {
    if($x%2 == 1){
        $td->setAttribute('class', 'odd');
    }
    else{
        $td->setAttribute('class', 'even');
    }
    $x++;
}
于 2012-05-30T20:20:25.703 回答