PHP textContent删除HTML?

时间:2012-05-30 20:03:31

标签: php

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

$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>

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

任何帮助?

1 个答案:

答案 0 :(得分:0)

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

您可以将该类添加到DomDocument

中的td
$tds = $dom->getElementsByTagName('td');
$x = 1;
foreach($tds as $td) {
    if($x%2 == 1){
        $td->setAttribute('class', 'odd');
    }
    else{
        $td->setAttribute('class', 'even');
    }
    $x++;
}