0

find() 这里是 simple_html_dom 库的一个函数,当给定一个 id/class 时,它应该返回 dom 节点元素。

$urlFetched->find("#".$id)当 $id 为“fk-list-MP3-Players-/-IPods”时,总是无法找到并返回某些内容。我猜问题出在正斜杠和 simple_html_dom 上,因为其他 id 和 url(剪断)没有问题。我该怎么办?我的程序几乎完成并且依赖于简单的 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>";
            }
        }
    }


}
4

1 回答 1

1

斜杠被解释为 XPath 表达式的一部分,因此它正在寻找一个名为-IPods. 也没有 XPath "quote" 类型的函数。我不确定添加反斜杠是否可行,但您可能更容易使用带有 id 的普通属性选择器:[@id='fk-list-MP3-Players-/-IPods']

于 2012-05-04T15:46:15.437 回答