2017-11-08 2 views
0

属性を取得する方法がたくさんあることはわかっています。DOMXPathで属性を取得する

<li class="result"> 
<a class="block_container" href="**FIRST**"> 
<img alt="changeable text" src="**SOME LINK**" border="0"> 
</a> 
</li> 

<li class="result"> 
<a class="block_container" href="**SECOND**"> 
<img alt="changeable text" src="**SOME LINK**" border="0"> 
</a> 
</li> 


//and many like this ... 

私は(HREF)をつかむことができますが、私は、この属性の多くを持っている:

これは私のhtmlの結果です!

私は私が項目番号と最初のhrefまたは第二のhrefをつかむ選択するためDOMXPathを使うことの最大のクエリを使用:

$a = $xpath->query("//li[@class='block_container']/a"); 
echo $text = $a->item(**MY ITEM NUMBER**)->nodeValue; 

が、それは動作しません!

アイテム番号でhrefとsrcを取得できますか?

+0

をしたい場合はXPathは、 '" //リー/ [@クラス=べきである場合あなたが ' saveHTML($ a);' – splash58

+0

を手に入れたいのであれば、私のコードを編集したり編集したりできますか? – Nomad

答えて

1

あなたは

$hrefs = $xpath->query("//li/a[@class='block_container']/@href"); 
foreach($hrefs as $href) { 
    echo $href->nodeValue ."<br>\n"; 
} 

a.hrefたいとあなたがイメージタグのouterHTML

$imgs = $xpath->query("//li/a[@class='block_container']/img"); 
foreach($imgs as $img) { 
    echo $dom->saveHTML($img) ."<br>\n"; 
} 

demo on eval.in

+0

しかし、どうすれば2番目のhrefを得ることができますか? – Nomad

+0

動作しませんでした。echo $ href-> item(1) - > nodeValue; – Nomad

+0

私のコードをベースにしている場合は、 'echo $ href-> item(1) - > nodeValue;' foreach – splash58