2012-05-04 6 views
0

find()はid/classが与えられたときにdomノード要素を返さなければならないsimple_html_domライブラリの関数です。単純なhtml domは、find(id)のスラッシュを処理できません。

$urlFetched->find("#".$id)は、$ idが "fk-list-MP3-Players -/- iPod"の場合、常に何かを見つけて返しません。私は他のidsとurl(snipped)に問題はないので、問題はスラッシュとsimple_html_domであると推測しています。 私は何をしますか?私のプログラムはほぼ完成しており、単純なhtml domに依存しています。

おかげ

コード:

$urlAndIds = array(
    array("http://www.flipkart.com/audio" , array('fk-list-Home-Audio', htmlentities("fk-list-MP3-Players-/-IPods"), 'fk-list-Accessories'),array('ALL','AllBrands'))); 

foreach($urlAndIds as $uAI) { 
    $url = file_get_contents($uAI[0]) ; 
    $urlFetched = str_get_html($url) ; 

    if ($url == false){ 
     echo 'page '.$uAI[0] . " not found" ."<br>" ."<br>"; 
    } else { 
     foreach ($uAI[1] as $id) { 
      $idFound = $urlFetched->find("#".$id) ; 
      if(!$idFound) { 

       echo 'In page '.$uAI[0].' -id not found- '.$id ."<br>"; 
      } 
     } 
    } 


} 
+0

IDにスラッシュを入れることはできませんでしたか? –

答えて

1

スラッシュは、XPath式の一部として解釈されているので、-IPodsという名前の子要素を探しています。 XPathの "quote"型関数もありません。バックスラッシュを追加するかどうかはわかりませんが、idを持つ通常の属性セレクタを使うほうが簡単かもしれません:[@id='fk-list-MP3-Players-/-IPods']

+0

"@ [id = fk-list-MP3-Players -/- iPod]]はうまくいきました!どうもありがとう –

関連する問題