для получения дополнительной информации.
аюсь удалить некоторый контент с веб-сайта, но приведенный ниже код не работает (не отображается никакой информации). вот код
$url="some url";
$otherHeaders=""; //here i am using some other headers like content-type,userAgent,etc
some curl to get the webpage
...
..
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$content=curl_exec($ch);curl_close($ch);
$page=new DOMDocument();
$xpath=new DOMXPath($page);
$content=getXHTML($content); //this is a tidy function to convert bad html to xhtml
$page->loadHTML($content); // its okay till here when i echo $page->saveHTML the page is displayed
$path1="//body/table[4]/tbody/tr[3]/td[4]";
$path2="//body/table[4]/tbody/tr[1]/td[4]";
$item1=$xpath->query($path1);
$item2=$xpath->query($path2);
echo $item1->length; //this shows zero
echo $item2->length; //this shows zero
foreach($item1 as $t)
echo $t->nodeValue; //doesnt show anything
foreach($item2 as $p)
echo $p->nodeValue; //doesnt show anything
я уверен, что с вышесказанным что-то не такxpath
код.xpaths
верны. Я проверил вышеxpaths
с участиемFirePath (a firefox addon)
, Я знаю, что мне здесь не хватает чего-то очень глупого, но я не могу разобрать. Пожалуйста помоги. Я проверил подобный код для очистки ссылок сWikipedia
(определенноxpaths
разные), и это работает хорошо. Так что я не понимаю, почему приведенный выше код не работает для другихURLs
, Я убираюHTML
довольствоватьсяTidy
так что я не есть проблема с Xpath не получить HTML правильно? я проверил длинуnodelist
после$item1=$xpath->query($path1)
который0
что означает, что что-то не так с$xpath->query
посколькуxpaths
правильно, как я проверил сFirePath
Я немного изменил свой код, как указано, и использовалloadXML
вместоloadHTML
, но это дает мне ошибку какEntity 'nbsp' not defined in Entity
так что я использовалlibxml
вариантLIBXML_NOENT
заменить сущности, но все же ошибки остаются.