CURL XPATH只抓住第一个div

时间:2015-06-17 12:14:40

标签: php html curl xpath

我正在尝试使用XPath在网站上获取最新消息。

新闻在许多具有相同名称的div中(以及一个名为“p_maj”的类) 以下是div的示例:

<div class="p_maj">
  <h1>10 juin 2015</h1>
  <div class="z_b_important">
  <h2>Actualités du projet</h2>
  <p>some text</p>
  <p>some text</p>
  <h2>Version Cristal </h2>
  <p>some text</p>
  <h2>Barèmes</h2>
  <p>some text</p>
  <ul>
  <h2>Information</h2>
  <p>some text</p>
</div>
  
<div class="p_maj">
  <h1>03 juin 2015</h1>
  <h2>Barèmes</h2>
  <p>some text</p>
  <ul>
  <h2>Outils</h2>
  <p>some text</p>
</div>

我想在我的网页上只有第一个Div(最新发布的)。

这是我的卷曲脚本来抓住div(它运作良好),但我找不到一种方法只有最好的一个:

        <?php 
$curl = curl_init('http://mywebsite/maj.htm');
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);  
$result = curl_exec($curl);

$dom = new DOMDocument();
$res=$dom->loadHTML($result);
$xpath = new DomXPath($dom);
$class = 'p_maj';
$divs = $xpath->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $class ')]");

foreach($divs as $div) { 
echo $dom->saveXML($div);
}
?>

任何人都知道我可以使用什么样的笔记?

我很抱歉,但Php dev不是我的专长...

感谢所有回答的人。

1 个答案:

答案 0 :(得分:0)

第一个div,类=“p_maj”

//div[@class="p_maj"][1]