Php 使用简单的HTMLDOM获取两个div标记之间的内容

Php 使用简单的HTMLDOM获取两个div标记之间的内容,php,parsing,simple-html-dom,Php,Parsing,Simple Html Dom,我正在使用简单的HTML Dom来解析HTML标记之间的文本。在我面临这个挑战之前,一切都很顺利。我可以轻松解析div标记中的文本,但如何解析两个div标记之间的文本呢 这是要分析的HTML: <div class="album"><b>Album1</b> (1997)</div> <a href="song11.html" target="_blank">song11</a><br /> <a href

我正在使用简单的HTML Dom来解析HTML标记之间的文本。在我面临这个挑战之前,一切都很顺利。我可以轻松解析div标记中的文本,但如何解析两个div标记之间的文本呢

这是要分析的HTML:

<div class="album"><b>Album1</b> (1997)</div>
<a href="song11.html" target="_blank">song11</a><br />
<a href="song12.html" target="_blank">song12</a><br />

<div class="album"><b>Album2</b> (1998)</div>
<a href="song21.html" target="_blank">song21</a><br />
<a href="song22.html" target="_blank">song22</a><br />

<div class="album"><b>Album3</b> (1999)</div>
<a href="song31.html" target="_blank">song31</a><br />
<a href="song32.html" target="_blank">song32</a><br />
专辑1(1997)

专辑2(1998)

专辑3(1999)


我想要第一张专辑的标题(Album1),它的年份(1997年)和两首歌曲的链接与他们的标题在一个单一的数组。然后,第二个相册在第二个数组中,第三个相册在第三个数组中。

不要将其视为两个div节点之间的文本,将其视为迭代div节点并包括它们后面的一些a节点:

$html =<<<EOF
<div class="album"><b>Album1</b> (1997)</div>
<a href="song11.html" target="_blank">song11</a><br />
<a href="song12.html" target="_blank">song12</a><br />
<div class="album"><b>Album2</b> (1998)</div>
<a href="song21.html" target="_blank">song21</a><br />
<a href="song22.html" target="_blank">song22</a><br />
<div class="album"><b>Album3</b> (1999)</div>
<a href="song31.html" target="_blank">song31</a><br />
<a href="song32.html" target="_blank">song32</a><br />
EOF;

require('simple_html_dom.php');
$doc = str_get_html($html);
$albums = array();

foreach($doc->find('div.album') as $div){
  $album = array();
  $album['title'] = $div->find('b', 0)->innertext;
  $album['song1'] = $div->nextSibling()->innertext;
  $albums[] = $album;
}

var_dump($albums);
$html=innertext;
$album['song1']=$div->nextSibling()->innertext;
$albums[]=$album;
}
var_dump(相册);

到目前为止你做了多少?歌曲项目的数量是否保持不变?好的,谢谢。但是如何找到兄弟姐妹的数量???例如,album1有2首歌曲,album2有3首歌曲。使用循环。如果您需要更多帮助,请开始一个新问题。已经开始了。查看div之间是否有其他标记,例如等等?在这种情况下,您将执行
pb
。学习如何选择元素。