[英]Fetching the first href from a div using dom
我需要從div提取第一個href值...但是它有兩個,而我只需要第一個...這是下面的html和我的代碼...
<div class="buttons">
<!-- Clickout -->
<a href="http://test.com"
class="btn--ir--orange js-btn-click js-clickout-track js-clickout-sink js-ga-tracking
gtm-clickout-11
"
rel="nofollow"
target="_blank"
>
<i class="icon-check"></i>Bekijk product
</a>
<!-- Checkout -->
<a class="btn--il--green margin-mobile-top-medium js-checkout-cart-add"
href="#" data-group="Spiegelreflexcamera"
</a>
</div>
為此,請使用以下代碼...
foreach($dom->getElementsByTagName('div') as $tr) {
if($tr->getAttribute('class') == 'buttons')
{
foreach($tr->getElementsByTagName('a') as $at)
{
$urnt = "http://kieskeurig.nl".$at->getAttribute('href');
}
echo $urnt ."<br />";
}
}
這會給我返回第二個href值,它是#...有人可以幫我嗎...無法弄清楚為什么它不讀取第一個href值...
在此代碼中:
foreach($tr->getElementsByTagName('a') as $at)
{
$urnt = "http://kieskeurig.nl".$at->getAttribute('href');
}
在每次迭代中, $urnt
變量將填充$at
新值。
當然 ,您在div中使用一個href
會得到結果-因為只有一個href
並且$urnt
的值不會被跟隨覆蓋 。
如果要獲取集合的第一個元素:
最簡單的方法是打破foreach
循環:
foreach($tr->getElementsByTagName('a') as $at)
{
$urnt = "http://kieskeurig.nl".$at->getAttribute('href');
break; // you break the loop right after the first iteration
}
echo $urnt ."<br />";
另一種選擇是使用item
方法, 未經測試,但應類似於:
$urnt = $tr->getElementsByTagName('a')->item(0)->getAttribute('href');
echo "http://kieskeurig.nl" . $urnt;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.