2013-07-01 5 views
2
$store = curl_exec($ch); // Returns a page of HTML 

$doc = new DOMDocument(); 
$doc->loadHTML($store); 
$xpath = new DOMXpath($doc); 

Vardump $xpath:DOMXPath var_dump: "(значение объекта опущено)"

object(DOMXPath)#2 (1) { 
    ["document"] => string(22) "(object value omitted)" 
} 

Что здесь не так? Я пытаюсь использовать xpath в HTML-коде для извлечения информации.

object(DOMDocument)#1 (34) { 
    ["doctype"]   => string(22) "(object value omitted)" 
    ["implementation"] => string(22) "(object value omitted)" 
    ["documentElement"] => string(22) "(object value omitted)" 
    ["actualEncoding"] => string(6) "gb2312" 
    ["encoding"]  => string(6) "gb2312" 
    ["xmlEncoding"]  => string(6) "gb2312" 
    ["standalone"]  => bool(true) 
    ... 
+2

, что это не так, как работает ... XPath XPath это поисковая система для DOM документов, это ** НЕ ** загруженный документ. –

ответ

2

loadHTMLFile требует путь HTML файла не содержание HTML-файла loadhtmlfile. Так что ваш код будет

$doc = new DOMDocument(); 
$doc->loadHTMLFile("path to html file"); 
$xpath = new DOMXpath($doc); 

Редактировать

Если вы хотите загрузить из содержимого HTML использовать loadhtml

$doc = new DOMDocument(); 
$doc->loadHTML($store); 
$xpath = new DOMXpath($doc); 
+0

Могу ли я загрузить из строки? – CodeGuru

+1

$ dom-> loadHTML ($ string); ?? – CodeGuru

+0

@RainbowHat См. Отредактированный ответ. Да. –

Смежные вопросы