2011-11-07 20 views
0

このコードを使用して、このサイトから金属名(銅、アルミニウムなど)を取得しています:http://www.kitcometals.com/この名前はライブスポット価格と呼ばれるテーブルのページの左側にあります。私はGoogleのクロムのXPathアプリでこのXPathをテストしているDOMXPathクエリエラー(何も表示されない)

<?php 
$url = "http://www.kitcometals.com/"; 
$html = file_get_contents($url); 
$dom = new DOMDocument(); 
$dom->loadHTML($html); 
$xp = new DOMXPath($dom); 

$qs = $xp->query("//table[@dwcopytype='CopyTableRow']/tbody/tr[@class='spot']/td[@class='menuB']"); 
foreach($qs as $q) 
{ 
    echo $q->textContent."<br>"; 
} 
?> 

は、ここに私のコードです。

銅 ニッケル アルミ 亜鉛 ウラン

リードしかし、それはPHP code.Wouldの誰に働いていない問題を把握してください:それはちょうどこのことtable.showing内のすべての金属の名前を示すうまく働いています??

答えて

1

ブラウザの「ランタイム」DOMに対してxpathクエリをテストしました。しかし、実際の文書にはtbody要素はありません。お試しください

//table[@dwcopytype='CopyTableRow']/tr[@class='spot']/td[@class='menuB'] 
+0

あなたの式は、 – qmaruf

+0

grmpf、コピー&ペーストエラーと同じです。今度は違う;-) – VolkerK

+0

あなたの助けを借りてコードがうまくいきました。あなたはなぜクロムが 'tbody'を表示する要素を調べるのかを説明しますか?ページをダウンロードした後、私はsrcをテキストエディタでチェックし、同じ結果を示しています。ブラウザーウィンドウでsrcをチェックしているときにtbody要素はありません。その本当に有線。 XPathを効率的にチェックする方法はありますか? – qmaruf

関連する問題