我整天都在苦苦挣扎。
我在字符串中有一个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
&gt;和<SPAN>
我需要合作。
我需要提取每个<TR>
(两个类)并将 html 保存在一个数组中,其中每个<TR>
都是一个数组元素。
创建节点列表数组很简单,但我如何获得实际的html?
答案 0 :(得分:3)
如果必须将HTML保存为字符串,则有DOMDocument::saveHTML
$elems = $xpath->query('//tr');
foreach ($elems as $elem) {
$array[] = $doc->saveHTML($elem);
}
(请注意,从PHP 5.3.6开始,saveHTML
的参数可用。)
我建议保存节点本身,并在输出之前不久将它们转换为字符串。
答案 1 :(得分:1)
或者仅使用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);
}
}