说我有这个HTML:
<a href="http://example.com">Test</a>
我使用带有以下代码的dom文档解析它:
$dom = new DomDocument();
@$dom->loadHTML($html);
$urls = $dom->getElementsByTagName('a');
然后我运行这段代码:
foreach ($urls as $url)
{
//echo "<br> {$url->getAttribute('href')} , {$url->getAttribute('title')}";
foreach ($url->attributes as $a)
{
echo "<br>$a->name is $a->value";
}
echo "<hr><br>";
}
当我这样做时,我只看到'href'作为url的属性,没有办法得到'锚文本'(在上面的例子'Test'中)。如何获取链接的锚文本?
答案 0 :(得分:6)
foreach ($urls as $url) {
$attributes = $url->attributes;
echo "<br>$url->nodeValue is $attributes->href";
}
答案 1 :(得分:5)
echo $url->nodeValue;
答案 2 :(得分:0)
文本“Test”实际上是一个DOM Text节点,因此您可以通过遍历$ url的子节点来获取内容。
您可以查看此帖子以获取解决方案:How to get innerHTML of DOMNode?
答案 3 :(得分:0)
here is two line code may it help some one
$html = file_get_html($link);
foreach($html->find("a") as $key=>$val)
{
echo $val->src;
echo '\n';
}