ошибка при разборе xml в drupal

0

Я использовал для разбора некоторых XML файлов RSS с PHP-скриптом, начинающимся таким образом

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://www.pinterest.com/myaccount/rss');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$contenu = curl_exec($curl);
$xml = new simpleXMLElement ($contenu);

но уже несколько дней я получил эту ошибку

PHP Неустранимая ошибка: исключить исключение "Исключение" с сообщением "Строка не может быть проанализирована как XML"

[Tue Mar 03 15:23:33.141113 2015] [:error] [pid 4748] [client 172.19.8.44:56794] PHP Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in/var/www/html/drupal/includes/common.inc(1743): eval()'d code:6\nStack trace:\n#0/var/www/html/drupal/includes/common.inc(1743): eval()'d code(6): SimpleXMLElement->__construct('')\n#1/var/www/html/drupal/includes/common.inc(1743): eval()\n#2/var/www/html/drupal/modules/php/php.module(81): drupal_eval('<?php?$curl = c...')\n#3 [internal function]: php_filter('process', '0', '5', '<?php?$curl = c...', '5:cc75e663c59c9...')\n#4/var/www/html/drupal/includes/module.inc(476): call_user_func_array('php_filter', Array)\n#5/var/www/html/drupal/modules/filter/filter.module(455): module_invoke('php', 'filter', 'process', '0', '5', '<?php?$curl = c...', '5:cc75e663c59c9...')\n#6/var/www/html/drupal/modules/node/node.module(1054): check_markup('<?php??$curl =...', '5', false)\n#7/var/www/html/drupal/modules/node/node.module(1098): node_prepare(Object(stdClass), false)\n#8/var/www/html/drupal/modules/node/node.module(1019): node_build_cont in/var/www/html/drupal/includes/common.inc(1743): eval()'d code on line 6,

Я понятия не имею, что происходит.

  • 0
    Можете ли вы уточнить, для каких частей сообщения «Строка не может быть проанализирована как XML», о чем конкретно вы не знаете? Как это сообщение об ошибке для вас загадка? Что вы ожидали вместо этого? Вы можете сказать, почему? - Если вы не используете больше контекста, опубликованный вами код выглядит правильно, и сообщение об ошибке имеет смысл.
Теги:
parsing

2 ответа

0

Ошибка верна, URL, который вы указали в своем вопросе, не содержит XML:

http://www.pinterest.com/myaccount/rss

Тем не менее, есть URL, который вы, скорее всего, хотели бы использовать вместо этого, который содержит XML:

https://www.pinterest.com/myaccount/feed.rss

Обратите внимание, что это независимо от Drupal. Просто вы не предоставили корректный XML конструктору SimpleXMLElement.

  • 0
    Ох ... Что я дурак я иногда. Это нормально с правильным URL, большое спасибо
0

Таким образом, ошибка в основном говорит о том, что вы получаете строку, но вы пытаетесь рассматривать ее как XML.

Посмотрите на свой источник - http://www.pinterest.com/myaccount/rss. Может ли ваш веб-сервер получить доступ к XML, который предположительно существует? Потому что я уверен, что не могу. Если я поеду туда, я перейду на другую страницу. И конечно, если бы я сделал команду cURL там, я собираюсь получить эту страницу... как строку, потому что это то, что есть, а не XML.

Я полагаю, что это действительно XML-контент, но вам, скорее всего, нужно войти в него, чтобы просмотреть его, - и есть ваша проблема: ваш веб-сервер не имеет действительного входа в Pinterest и поэтому не может видеть XML. Возможно, вам захочется выяснить, можно ли использовать cURL для аутентификации и доступа к этому XML.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню