使用PHP </div>循环遍历<div>元素

时间:2010-01-18 21:13:14

标签: php html-parsing

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

2 个答案:

答案 0 :(得分:8)

这应该有效(如果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

答案 1 :(得分:0)

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

$xml = simplexml_load_string($xhtmlstring);
foreach ($xml->div as $d) {
   {
   //parsing
   }
}