我整天都在为此苦苦挣扎。
我在字符串中有一个 html 表。
<TABLE>
<TBODY>
<TR CLASS=dna1>
<TD></TD><TD></TD><TD></TD><TD></TD>
</TR>
<TR CLASS=dna2>
<TD></TD><TD></TD><TD></TD><TD></TD>
</TR>
repeat...
<TD>
里面有一些我需要处理的<DIV
>和<SPAN>
。
我需要提取每个<TR>
(两个类)并将 html 保存在一个数组中,其中每个<TR>
都是一个数组元素。
创建节点列表数组很容易,但是如何获取实际的html?
如果必须将 HTML 另存为字符串,则有 DOMDocument::saveHTML
$elems = $xpath->query('//tr');
foreach ($elems as $elem) {
$array[] = $doc->saveHTML($elem);
}
(请注意,saveHTML
的参数从 PHP 5.3.6 开始可用。
不过,我建议保存节点本身,并在输出节点之前不久将它们转换为字符串。
或者仅使用 DOMDocument
:
$dom = new DOMDocument();
@$dom->loadHTML($html);
if($table=$dom->getElementsByTagName('table')->item(0)){
//traverse the table and output every rows
$rows=array();
foreach ($table->childNodes as $row){
$rows[]=$dom->saveHTML($row);
}
}