2

我在一个字符串中有一个 html 块,它基本上是一个 div 列表......每个 div 里面都有我想单独解析的 html。

我很难弄清楚如何循环遍历初始 div。

任何人都可以帮忙吗?

html的一个例子:

<div><!-- stuff in here --></div>
<div><!-- stuff in here --></div>
<div><!-- stuff in here --></div>
<div><!-- stuff in here --></div>

在这个例子中,我希望最终代码循环 4 次,并为我提供每个 div 的内容

4

2 回答 2

10

这应该有效(如果 HTML 在外部文件中):

$doc = new DOMDocument();
$doc->loadHTMLFile('test.html');
$divs = $doc->getElementsByTagName('div');
foreach($divs as $n) {
    echo $n->nodeValue;
}

如果是包含 HTML 的字符串,您可以执行以下操作:

$doc = new DOMDocument();
$doc->loadHTML('<html><body><div>A</div><div>B</div><div>C</div><div>D</div></body></html>');
$divs = $doc->getElementsByTagName('div');
foreach($divs as $n) {
  echo $n->nodeValue . "\n";
}

这将产生:

A
B
C
D
于 2010-01-18T21:16:08.180 回答
0

如果是 XHTML,您可以使用 SimpleXML:

$xml = simplexml_load_string($xhtmlstring);
foreach ($xml->div as $d) {
   {
   //parsing
   }
}
于 2010-01-18T21:18:43.230 回答