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 :: парсинг simplexml_load_string

 PHP.SU

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


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

> Без описания
mega94
Отправлено: 04 Февраля, 2015 - 09:08:48
Post Id



Новичок


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


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

[+][+]


Помогите разобраться хочу парсит такой запрос:
PHP:
скопировать код в буфер обмена
  1. $url = 'http://otapi.net/OtapiWebService2.asmx/BatchSearchItemsFrame?instanceKey='.CFG_SERVICE_INSTANCEKEY.'&language=ru&xmlParameters=<SearchItemsParameters><CategoryId>'.$id_cats.'</CategoryId><Configurators><Configurator Pid='20000' Vid='7704137'/></Configurators><OrderBy>'.$sorting.'</OrderBy></SearchItemsParameters>&sessionId=&framePosition='.$startget.'&frameSize=10&blockList=SearchProperties';


PHP:
скопировать код в буфер обмена
  1. function parse($url){
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, $url);
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl, CURLOPT_HEADER, 0);
  6.  
  7. $result = curl_exec($curl);
  8. print_r($result);
  9. if ($result === FALSE) {
  10.     echo "cURL Error: " . curl_error($curl); die();
  11. }
  12. $xmlObject = simplexml_load_string($result);
  13.  
  14. curl_close($curl);
  15.  
  16. if ((string)$xmlObject->ErrorCode !== 'Ok') {
  17.     echo "Error: " . $xmlObject->ErrorDescription; die();
  18. }
  19. return $xmlObject;
  20.  }


ошибка с строке
CODE (html):
скопировать код в буфер обмена
  1. <Configurator Pid='20000' Vid='7704137'/>
(HTTP Error 400. The request is badly formed.)
а как сформулировать тогда? надо именно так:
CODE (html):
скопировать код в буфер обмена
  1. <Configurator Pid='20000' Vid='7704137'/>
 
 Top
skiphog
Отправлено: 04 Февраля, 2015 - 09:42:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


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




Осмелюсь предположить, что у вас ошибка в составлении строки.
Т.к. вы строку формируете в одинарных кавычках,то как раз эта часть получается с ошибкой.
Попробуйте изменить
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!-- это -->
  3. <Configurator Pid='20000' Vid='7704137'/>
  4.  
  5. <!-- на это -->
  6. <Configurator Pid="20000" Vid="7704137" />
 
My status
 Top
mega94
Отправлено: 04 Февраля, 2015 - 10:00:06
Post Id



Новичок


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


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

[+][+]


skiphog пишет:
Осмелюсь предположить, что у вас ошибка в составлении строки.
Т.к. вы строку формируете в одинарных кавычках,то как раз эта часть получается с ошибкой.
Попробуйте изменить
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!-- это -->
  3. <Configurator Pid='20000' Vid='7704137'/>
  4.  
  5. <!-- на это -->
  6. <Configurator Pid="20000" Vid="7704137" />

Так тоже пробовал тоже самое, ошибка в пробеле
PHP:
скопировать код в буфер обмена
  1. <ConfiguratorPid="20000"Vid="7704137" />

такой код функция simplexml_load_string пропускает, но api сервис ответит (Недопустимый параметр xmlУлыбка
 
 Top
Sail
Отправлено: 04 Февраля, 2015 - 10:14:42
Post Id



Участник


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


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




mega94, тогда вполне логично будет или всю строку $url обрамить двойными кавычками, или экранировать апострофы Улыбка
PHP:
скопировать код в буфер обмена
  1. $url = ".....<Configurator Pid='20000' Vid='7704137'/>......";
  2. /* или */
  3. $url = '.......<Configurator Pid=\'20000\' Vid=\'7704137\'/>.......';

Подробности о строках в PHP
 
 Top
skiphog
Отправлено: 04 Февраля, 2015 - 10:32:31
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014  
Откуда: Киров, Россия


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




Вот так должно работать
PHP:
скопировать код в буфер обмена
  1. $string = '<SearchItemsParameters><CategoryId>'.$id_cats.'</CategoryId><Configurators><Configurator Pid="20000" Vid="7704137"/></Configurators><OrderBy>'.$sorting.'</OrderBy></SearchItemsParameters>';
  2. $url = 'http://otapi.net/OtapiWebService2.asmx/BatchSearchItemsFrame?instanceKey='.CFG_SERVICE_INSTANCEKEY.'&language=ru&xmlParameters='.rawurlencode($string).'&sessionId=&framePosition='.$startget.'&frameSize=10&blockList=SearchProperties';
 
My status
 Top
mega94
Отправлено: 04 Февраля, 2015 - 15:26:21
Post Id



Новичок


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


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

[+][+]


skiphog пишет:
Вот так должно работать
PHP:
скопировать код в буфер обмена
  1. $string = '<SearchItemsParameters><CategoryId>'.$id_cats.'</CategoryId><Configurators><Configurator Pid="20000" Vid="7704137"/></Configurators><OrderBy>'.$sorting.'</OrderBy></SearchItemsParameters>';
  2. $url = 'http://otapi.net/OtapiWebService2.asmx/BatchSearchItemsFrame?instanceKey='.CFG_SERVICE_INSTANCEKEY.'&language=ru&xmlParameters='.rawurlencode($string).'&sessionId=&framePosition='.$startget.'&frameSize=10&blockList=SearchProperties';
ура!!! спасибо заработало, а я даже не знал о функции вот за что я люблю этот форум тут всегда помогут =)

(Отредактировано автором: 04 Февраля, 2015 - 15:27:35)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB