Php 如何获得多个类的同级

Php 如何获得多个类的同级,php,class,dom,xpath,Php,Class,Dom,Xpath,我有这些标签: <div class="entry">entry #1</div> <div class="subtitle">subtitle</div> <div class="body">blah blah blah</div> <div class="entry">entry #2</div> <div class="subtitle">subtitle</div> &

我有这些标签:

<div class="entry">entry #1</div>
<div class="subtitle">subtitle</div>
<div class="body">blah blah blah</div>
<div class="entry">entry #2</div>
<div class="subtitle">subtitle</div>
<div class="body">blah blah blah</div>
<div class="entry">entry #3</div>
<div class="subtitle">subtitle</div>
<div class="body">blah blah blah</div>
<div class="entry">entry #4</div>
<div class="subtitle">subtitle</div>
<div class="body">blah blah blah</div>
条目#1
字幕
废话废话
条目#2
字幕
废话废话
条目#3
字幕
废话废话
条目#4
字幕
废话废话

等等。如何在PHP中获取每个“条目”类之间的所有内容?使用简单的\u html\u dom\u解析或XPath?

猜测这就是您想要得到的:

<?php
// set up to parse our input
$dom = new DOMDocument();
$dom->loadHTMLFile("./input.html");
$xpath = new DOMXPath($dom);

// initialize array to put items in and initialize an item
$list = array();
$item = array();

$divs = $xpath->query("//div");
echo "len: {$divs->length}\n";
foreach ($divs as $div) {
  $class = $div->getAttribute("class");

  // each time we see an entry, add the item we've collected
  if ($class == "entry") {
    if (count($item) > 0) $list[] = $item;
    $item = array();
  }

  // otherwise add to the item we're working on
  else {
    $item[$class] = $div->childNodes->item(0)->nodeValue;
  }
}

// pick up the last item we were working on
$list[] = $item;

// and print the result
var_dump($list);
?>

我不清楚你到底想要什么-你能举个例子吗?您想要第一个和最后一个
条目之间的所有元素吗。。。是第一个分隔符,也是我想要获取的内容的第一行。谢谢!这正是我想要的。