2016-11-14 4 views
0

私はネイティブのDOM拡張を使用して、ドキュメントからすべてのHTMLリンクを取得しようとしている:DOMDocumentからすべてのHTMLリンクを取得するには?

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

しかし、それは私に空のオブジェクトを与える:

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

HTMLコードです。どのように正しく行うには?

+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); 
} 

card-click-targetに等しいclass属性値を持つすべてのaタグをフェッチ:

$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 = '" card-click-target "に対応する要素の' href'を取得したい – MisterPi

+0

本体の質​​問をもう一度見てください – MisterPi

+0

だから、ループの後でhrefを取得できますか? – MisterPi

関連する問題