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