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