我使用DOMDocument
类解析网站。
html代码就像这样
<img src="xxxxxx">
abc
<br>
<img src="xxxxxx">
def
<br>
.....
我想要的是提取img src链接以及<img>
标记和<br>
标记之间的单词作为一对。我正在循环以获取html代码中的所有对。
我可以使用<img>
获取所有getElementsByTagName
src,但我不知道如何在img和br tag之间获取这些单词。
有没有方法可以配对那些img src和单词?
由于
答案 0 :(得分:1)
如果你想在之后定位文本,那么只需获取每个img标签。
然后在那之后它到下一个兄弟:
->nextSibling
粗略的例子:
$sample_html = '
<img src="http://www.whatever.com" alt="" />
abc
<br>
<img src="http://goingnowhere.com" alt="">
def
<br>';
$dom = new DOMDocument();
$dom->loadHTML($sample_html);
$data = array();
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
$data[] = array(
'src' => $image->getAttribute('src'),
'text' => trim($image->nextSibling->textContent),
);
}
echo '<pre>';
print_r($data);
现在看起来应该是这样的:
Array
(
[0] => Array
(
[src] => http://www.whatever.com
[text] => abc
)
[1] => Array
(
[src] => http://goingnowhere.com
[text] => def
)
)