2016-07-22 9 views
0

特定のサイトでDOM内の要素を探したいと思います。 DOM内には "cufon"というタグがあります。 URLは私が使用http://www.xyzw.com/ コードであると仮定すると、次のようになります。この時点でPHPでDOMをトラバースする

$dom = new DOMDocument(); 
@$dom->loadHTMLFile('http://www.xyzw.com/'); 
$teams = $dom->getElementById('cufon'); 

$チームはDOM内のcufon要素の全てを含むように仮定VARが、私は見つけるためにしようとした場合、それは何が含まれていません"div"要素はすべてそれを見つけます。 問題は何ですか?

+0

「javascript」でcufonが追加されますか? – atoms

+0

いいえ、私はページ内のその固定を参照してください。 – user3601251

+0

cufonというタグがありますか?id = cufonのdivがありますか? – RamRaider

答えて

1

cufontextというタグがある場合、1つのIDを使用してノードのコレクションを検索しようとすると、特定の要素(IDは一意である必要があります)が返されますタグ名??これは、リモートのURLからコンテンツを大量に吐き出すます

/* random url - just happened to be open in browser just now */ 
$url='http://www.interparcel.com/'; 

/* the tag to search for */ 
$tag='div'; 


$dom = new DOMDocument(); 
$dom->loadHTMLFile($url); 
$teams = $dom->getElementsByTagName($tag); 

/* As pointed out by @Pieter it would have always returned true so additional check */ 
if($teams && $teams->length > 0){ 
    foreach($teams as $team){ 
     echo $team->nodeValue; 
    } 
} 

- - ので、あなたができない場合:私たちは、私はこのようなテストをしなければならなかった関与実際のURLを与えられていないとして

$dom = new DOMDocument(); 
$dom->loadHTMLFile('http://www.xyzw.com/'); 
$teams = $dom->getElementsByTagName('cufontext'); 
if($teams){ 
    foreach($teams as $team){ 
     /* do stuff */ 
    } 
} 

cufontextという名前のタグがあることを確認することをお勧めします。

+0

'getElementsByTagName()'は常に 'DOMNodeList'オブジェクトを返すので、if文は不要です。 – Pieter

+0

私はそれを試み、成功しませんでした。 – user3601251

+0

確かにcufontextというタグがあります。私はあなたと同じことを試みましたが、結果はまだありません。なぜphpセレクターがcufontext要素を見つけることができないのか分かりません。 – user3601251

関連する問題