2016-11-14 44 views
0

我试图获取从文档使用本地DOM扩展所有的HTML链接:如何从DOMDocument获取所有HTML链接?

$items = $xpath->query('//div[@class="cards"]/div[@class="card"]/div/a[@class="card-click-target"]'); 

HTML代码:

<div class="cards"> 
    <div class="card"> 
     <div><a class="card-click-target" href="http://">Link</a></div> 
    </div> 
</div> 

但它给了我一个空的对象。如何正确地做到这一点?

+0

这将是更容易使用某种像简单的HTML DOM库 - http://simplehtmldom.sourceforge.net/ –

+1

@Pedrammarandi,他使用了随PHP包一起提供的dom扩展中的'DOMXPath'类。 –

回答

1

如果你想获取其href属性a节点,使用//a[@href] XPath表达式,如:

$r = $xpath->evaluate('//a[@href]'); 
foreach ($r as $n) { 
    printf("%s: %s\n", $n->textContent, $n->getAttribute('href')); 
} 

样本输出

Link: http://domain.com/page 

但是,如果你想要的href属性值,使用//a/@href选择器:

$r = $xpath->evaluate('//a/@href'); 
foreach ($r as $n) { 
    var_dump($n->value); 
} 

实例获取所有a标签与class属性值等于card-click-target

$r = $xpath->evaluate('//a[@class = "card-click-target" and @href]'); 
foreach ($r as $n) { 
    printf("%s: %s\n", $n->textContent, $n->getAttribute('href')); 
}; 
+0

我想获得对应于我的HTML DOM文档和class ='“卡片点击目标”的元素的'href'' – MisterPi

+0

请再次请看身体问题 – MisterPi

+0

因此,在循环之后我可以获得href? – MisterPi