Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: xpath query

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Соц Сеть
Отправлено: 06 Июня, 2018 - 14:00:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Добрый день ! никак не получается вытащить тег <p> из второго запроса , возвращает DOMNodeList Object ( [length] => 0 )
PHP:
скопировать код в буфер обмена
  1. $html="<div class='_5pbx userContent _3576'>
  2.         <div>
  3.                 <p id='pid'>
  4.                         <a href='/link3.php'>links</a>
  5.                 </p>
  6.         </div>
  7.         <div>
  8.                 <p id='pid'>
  9.                         <a href='/link.php'>links</a>
  10.                 </p>
  11.         </div>
  12. </div>";
  13. $doc=new DOMDocument();
  14. $doc->loadHTML($html);
  15.  
  16. $xpath=new DomXPath($doc);
  17. $topics_data=$xpath->query("//*[contains(@class, '_5pbx userContent _3576')]");
  18.  
  19. $p=$xpath->query("*[contains(@id, 'pid')]",$topics_data->item(0));


кто может подсказать в чем проблема ?
заранее спасибо.
 
 Top
Vladimir Kheifets
Отправлено: 07 Июня, 2018 - 11:24:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Соц Сеть пишет:
Добрый день ! никак не получается вытащить тег <p> из второго запроса , возвращает DOMNodeList Object ( [length] => 0 )
PHP:
скопировать код в буфер обмена
  1. $html="<div class='_5pbx userContent _3576'>
  2.         <div>
  3.                 <p id='pid'>
  4.                         <a href='/link3.php'>links</a>
  5.                 </p>
  6.         </div>
  7.         <div>
  8.                 <p id='pid'>
  9.                         <a href='/link.php'>links</a>
  10.                 </p>
  11.         </div>
  12. </div>";
  13. $doc=new DOMDocument();
  14. $doc->loadHTML($html);
  15.  
  16. $xpath=new DomXPath($doc);
  17. $topics_data=$xpath->query("//*[contains(@class, '_5pbx userContent _3576')]");
  18.  
  19. $p=$xpath->query("*[contains(@id, 'pid')]",$topics_data->item(0));


кто может подсказать в чем проблема ?
заранее спасибо.

Добрый день!
Честно говоря, у меня ещё до этого ругается на то, что одинаковый id в тегах <p>.
Попробуйте использовать simplexml_load_String вместо DomXPath
Вот что получается:
Спойлер (Отобразить)

Обрабратите внивание на libxml_use_internal_errors(true);
Важно перехватывать сообщения об ошибках в структуре данных (особенно из cUrl ) и их обрабатывать, иначе, всё будет вылезать на сайте.
Удачи!

(Отредактировано автором: 07 Июня, 2018 - 11:36:55)

 
 Top
Соц Сеть
Отправлено: 23 Июня, 2018 - 20:42:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Vladimir Kheifets пишет:
Соц Сеть пишет:
Добрый день ! никак не получается вытащить тег <p> из второго запроса , возвращает DOMNodeList Object ( [length] => 0 )
PHP:
скопировать код в буфер обмена
  1. $html="<div class='_5pbx userContent _3576'>
  2.         <div>
  3.                 <p id='pid'>
  4.                         <a href='/link3.php'>links</a>
  5.                 </p>
  6.         </div>
  7.         <div>
  8.                 <p id='pid'>
  9.                         <a href='/link.php'>links</a>
  10.                 </p>
  11.         </div>
  12. </div>";
  13. $doc=new DOMDocument();
  14. $doc->loadHTML($html);
  15.  
  16. $xpath=new DomXPath($doc);
  17. $topics_data=$xpath->query("//*[contains(@class, '_5pbx userContent _3576')]");
  18.  
  19. $p=$xpath->query("*[contains(@id, 'pid')]",$topics_data->item(0));


кто может подсказать в чем проблема ?
заранее спасибо.

Добрый день!
Честно говоря, у меня ещё до этого ругается на то, что одинаковый id в тегах <p>.
Попробуйте использовать simplexml_load_String вместо DomXPath
Вот что получается:
Спойлер (Отобразить)

Обрабратите внивание на libxml_use_internal_errors(true);
Важно перехватывать сообщения об ошибках в структуре данных (особенно из cUrl ) и их обрабатывать, иначе, всё будет вылезать на сайте.
Удачи!


я решил проблему всего то надо было добавить .// чтобы обратится к этому элементу $p=$xpath->query(".// *[contains(@id, 'pid')]",$topics_data->item(0));
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB