0

HTMLページをスクレイピングするための簡単なPHPを作成しようとしています。なぜ結果が得られないのかわかりませんか?これが私のPHPコードの一部です:

//$html , successfuly get the html from "http://m.hkgolden.com/topics.aspx?type=HW" by curl

$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$xpath->registerNamespace('x', 'http://www.w3.org/1999/xhtml');

$itemList = $xpath->query('//x:div[contains(@class,"TopicBox_Details")]/a');

var_dump($itemList); // it show --> object(DOMNodeList)#4 (0) { }

foreach ($itemList as $item){
        $this->child_urls[] = $item->getElementsByTagName('a')->item(0)->getAttribute('href');
                }

var_dump($this->child_urls); //it show --> array(0) { } 

同じ xpath クエリは firefox XPath Checker では機能しますが、同じクエリは PHP では機能しません。私は何か間違ったことをしましたか? Firefox XPath チェッカー

4

1 に答える 1

0

aXPathの要素にも名前空間を追加する必要があります-名前空間は継承されます:

//x:div[contains(@class,"TopicBox_Details")]/x:a
于 2012-08-02T10:35:15.733 に答える