1

我整天都在为此苦苦挣扎。

我在字符串中有一个 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?

4

2 回答 2

3

如果必须将 HTML 保存为字符串,则有DOMDocument::saveHTML

$elems = $xpath->query('//tr');

foreach ($elems as $elem) {
  $array[] = $doc->saveHTML($elem);
}

(请注意,参数 forsaveHTML自 PHP 5.3.6 起可用。)

不过,我建议自己保存节点,并在输出它们之前不久将它们转换为字符串。

于 2012-04-07T19:53:19.333 回答
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);

    }
}
于 2014-12-08T09:13:24.120 回答