使用xPath选择特定标记的所有子代

时间:2018-08-06 08:54:59

标签: php xpath

我想获取div的所有段落标签,但是脚本只获取第一个段落标签。

页面是这样的:

<!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    	</head>
    	<body>
        <div id="body">
          <p dir="ltr">parageraph one.</p>
          <p dir="ltr">parageraph two.</p>
          <p dir="ltr">parageraph three.</p>
          <p dir="ltr">parageraph three.</p>
          <span>span tag.</span>
        </div>
    	</body>
    </html>

我的脚本是:

$content = file_get_contents($url);
$dom_obj = new DOMDocument();
$content = mb_convert_encoding($content,'HTML-ENTITIES','UTF-8');
$dom_obj->loadHtml($content);
$xpath = new DOMXPath($dom_obj);
$response = $xpath->query('//div[@id="body"]/p');

为什么只获取第一段标签?!


我发现了问题:),脚本运行良好,我应该这样获取响应:

$response = $xpath->query('//div[@id="body"]/p');
foreach ($response as $entry) {
    echo $entry->nodeValue;
}

0 个答案:

没有答案