假定一个网页中有一堆带有各种类名的href,如:
<a href="http://example.com/redlink1" class="red">link </a>
<a href="http://example.com/bluelink2" class="blue">link </a>
<a href="http://example.com/greenlink3" class="green">link </a>
<a href="http://example.com/redlink4" class="red">link </a>
<a href="http://example.com/bluelink5" class="blue">link </a>
<a href="http://example.com/greenlink6" class="green">link </a>
并且我已经将html页面加载到dom.document中。
我可以通过此循环提取所有“ A”标签,然后显示HREF值
foreach($dom->getElementsByTagName('a') as $link) {
// Show the <a href>
echo $link->getAttribute('href') . "<br>";
}
但是如何只获得那些具有'blue'类名的HREF链接?这在FOREACH中不起作用:
$blue_class_links[] = $link->getElementByClass('blue');
如果类完全是蓝色(不是class="blue some-other-class"
,则可以使用getAttribute
的$link
方法检查类是否等于蓝色:
foreach($dom->getElementsByTagName('a') as $link) {
// Show the <a href>
if ($link->getAttribute("class") == "blue") {
echo $link->getAttribute('href') . "<br>";
}
}
使用getAttribute('class')
获取课程。
foreach($dom->getElementsByTagName('a') as $link) {
if ($link->getAttribute('class') == "blue") {
echo $link->getAttribute('href') . "<br>";
}
}
如果它可以有多个类别,则需要将其拆分并搜索。
if (in_array("blue", explode(' ', $link->getAttribute('class'))))