我在php文件中有多个DIV内容:div class =“sco”。
以下代码效果很好,但它只从第一个DIV中提取内容。如何从所有DIV中提取内容?
提前谢谢。
$html = file_get_contents('http://www..../include/test.php');
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
$finder = new DomXPath($doc);
$node = $finder->query("//*[contains(@class, 'sco')]");
print_r($doc->saveHTML($node->item(0)));
答案 0 :(得分:0)
只需遍历您的DOMNodeList
对象:
<?php
$html = '
<div class="sco">a</div>
<div class="sco">b</div>
<div class="sco">c</div>
';
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
$finder = new DomXPath($doc);
$node = $finder->query("//*[contains(@class, 'sco')]");
for($i=0;$i<$node->length;$i++)
{
echo "<pre>";
var_dump($node->item($i)->nodeValue);
echo "</pre>";
}
输出:
string(1) "a"
string(1) "b"
string(1) "c"
答案 1 :(得分:0)
在最后一行,您只访问第一项(索引0):$node->item(0)
相反,循环$node
并打印每个项目:
$node = $finder->query("//*[contains(@class, 'sco')]");
foreach($node as $item){
print_r($doc->saveHTML($item));
}