2016-11-14 75 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