我需要从div中获取第一个href值...但它有两个,我只需要第一个...这里是以下的html和我的编码......
import os, sys
for p in sys.path:
try:
for fn in (os.listdir(p or '.')):
if 'platform' in fn.lower():
print os.path.join(p, fn)
except OSError:
print ':skipped', p
为此我使用以下代码......
<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>
这会返回第二个href值,这是#...任何人都可以帮我解决这个问题......无法弄清楚为什么它没有读取第一个href值......
答案 0 :(得分:1)
在此代码中:
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;