Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > SimpleXML не разбирает XML от Озона


Автор: tolik777 23.3.2010, 19:38
Пытаюсь разобрать XML от инет-магазина озон.ру. Вот сам линк на XML: http://www.ozon.ru/webservices/OzonWebSvc.asmx/ItemDetail?ID=5019474
Мой код:
Код

$sc = file_get_contents("http://www.ozon.ru/webservices/OzonWebSvc.asmx/ItemDetail?ID=5019474"); 
$xml1 = simplexml_load_string ($sc); 
var_dump($xml1); 

На выдаче получается:
Цитата

object(SimpleXMLElement)#1 (0) {
}
object(SimpleXMLElement)#2 (0) {
}
object(SimpleXMLElement)#1 (0) {
}


Если вот такой код:
Код

$sc = file_get_contents("http://www.ozon.ru/webservices/OzonWebSvc.asmx/ItemDetail?ID=5019474"); 
$sc = iconv("UTF-8", "cp1251", $sc); 
$xml1 = simplexml_load_string ($sc); 
var_dump($xml1); 


то на выдаче:
Цитата

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 30: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xD1 0xE8 0xF1 0xF2 in /home/*******/public_html/ozon_import.php on line 35

Warning: simplexml_load_string() [function.simplexml-load-string]: <Name>Системы контроля и управления доступом</Name> in /home/********/public_html/ozon_import.php on line 35

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/**********/public_html/ozon_import.php on line 35

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 30: parser error : Input is not proper UTF-8, indicate encoding ! Bytes: 0xD1 0xEF 0xF0 0xE0 in /home/*****/public_html/ozon_import.php on line 35.........
........
........
........


Где я накосячил?


Автор: bars80080 23.3.2010, 20:51
а зачем ты его iconv() делаешь?

Автор: tolik777 23.3.2010, 21:26
Просто думал, может кодировка не та. Страница у меня в windows-1251.
Ну в первом варианте и без iconv и все равно не работает.

Автор: Fortop 23.3.2010, 21:57
tolik777,
1. загрузи файл при помощи file_get_content, посмотри его содержимое и только после этого скармливай simplexml
2. проитерируйся по полученному объекту.

Автор: tolik777 23.3.2010, 22:03
1. Не совсем понял. Что значит "посмотреть"? Просто, для себя что-ли? Или вывести при помощи var_dump?
2. "проитерируйся" - что обозначает? Вообще не понял smile

Автор: Fortop 23.3.2010, 23:14
Цитата(tolik777 @  23.3.2010,  21:03 Найти цитируемый пост)
Что значит "посмотреть"? Просто, для себя что-ли? Или вывести при помощи var_dump?

Без разницы. Можешь скинуть куда-нибудь в файл и посмотреть структуру. Но разбираться придется с неймспейсами.

Насчет второго - используй foreach, а за детальным описанием в гугл и мануал.

Автор: tolik777 24.3.2010, 19:22
Вообщем сделал через регулярки по старинке.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)