Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2017, 21:39   #1
Tagir93
Пользователь
 
Регистрация: 06.02.2017
Сообщений: 31
По умолчанию импорт XML в MySQL

Помогите написать парсер XML прайс-листа в MySQL
Вот структура XML:
Код:
<disk>
<code>1000068</code>
<brand>YOKATTA</brand>
<model>Model Forged-501</model>
<name>
YOKATTA Model Forged-501 6.5x16/5x112 ET33 D57.1 BK
</name>
<color>bk</color>
<width>6.5</width>
<diametr>16</diametr>
<bolts_count>5</bolts_count>
<bolts_spacing>112</bolts_spacing>
<et>33</et>
<dia>57.1</dia>
<price>7238.00</price>
<price_recomend_opt>7238.00</price_recomend_opt>
<price_recomend_rozn>8008.00</price_recomend_rozn>
<weight>8.00</weight>
<volume>0.05</volume>
<picture>
http://photo.yst.ru/wheels/yokatta/model forged-501_bk.png
</picture>
<restyar>3</restyar>
<restspb>0</restspb>
<restekb>0</restekb>
<restrnd>0</restrnd>
<restmsk>0</restmsk>
<comments/>
<article>1000068</article>
</disk>
Написал парсер, но он не работает, выдает ошибки Warning: simplexml_load_file() [function.simplexml-load-file]: http://terminal.yst.ru/api/xml/disk/...9a8fd2d522e:1: parser error : Start tag expected, '<' not found in /var/www/www-root/data/www/shinacar.ru/pricedisk1.php on line 17

Warning: simplexml_load_file() [function.simplexml-load-file]: [{"code":1000068,"brand":"YOKATTA"," model":"Model Forged-501","name":"YOKATTA Mo in /var/www/www-root/data/www/shinacar.ru/pricedisk1.php on line 17

Warning: simplexml_load_file() [function.simplexml-load-file]: ^ in /var/www/www-root/data/www/shinacar.ru/pricedisk1.php on line 17

Notice: Trying to get property of non-object in /var/www/www-root/data/www/shinacar.ru/pricedisk1.php on line 21

Вот сам парсер
Код:
<?php

mysql_pconnect("localhost","логин","пароль");
mysql_select_db("имя базы");
mysql_query("SET NAMES utf8");

/* функция дебага массивов */
function arr($arr){
	echo '<pre>';
	print_r($arr);
	echo '</pre>';
}

$file = 'http://terminal.yst.ru/api/xml/disk/b12cd8d7-7c96-43d0-8180-09a8fd2d522e'; // файл XML
$read = simplexml_load_file($file); // получаем объект класса

//arr($read); // распечатываем массив $read

$xml = $read->block; // $xml - объект-массив, вложенные теги - его свойства

$count = count($xml); // кол-во элементов массива

for($i = 0; $i < $count; $i++){
	
	echo "<p>Ряд для таблицы с id - {$i}</p>";
	echo $xml[$i]->code. '<br />'; //
	echo $xml[$i]->brand. '<br />'; // 
	echo $xml[$i]->model. '<br />'; // 
	echo $xml[$i]->width. '<br />'; // 
    echo $xml[$i]->diametr. '<br />';
	echo $xml[$i]->bolts_count. '<br />';
	echo $xml[$i]->bolts_spacing. '<br />';
	echo $xml[$i]->et. '<br />';
	echo $xml[$i]->dia. '<br />';
	echo $xml[$i]->price. '<br />';
	echo $xml[$i]->price_recomend_opt. '<br />';
	echo $xml[$i]->price_recomend_rozn. '<br />';
	echo $xml[$i]->weight. '<br />';
	echo $xml[$i]->volume. '<br />';
	echo $xml[$i]->picture. '<br />';
	echo $xml[$i]->restyar. '<br />';
	echo $xml[$i]->restspb. '<br />';
	echo $xml[$i]->restekb. '<br />';
	echo $xml[$i]->restrnd. '<br />';
	echo $xml[$i]->restmsk. '<br />';
	echo $xml[$i]->comments. '<br />';
	echo $xml[$i]->article. '<br />';
	
	
	
	
	/* можно поместить в привычные переменные */
	$code_xml = $xml[$i]->code;
	$brand_xml = $xml[$i]->brand;
	$model_xml = $xml[$i]->model;
	$color_xml = $xml[$i]->color;
	$width_xml = $xml[$i]->width;
	$diametr_xml = $xml[$i]->diametr;
	$bolts_count_xml = $xml[$i]->bolts_count;
	$bolts_spacing_xml = $xml[$i]->bolts_spacing;
	$et_xml = $xml[$i]->et;
	$dia_xml = $xml[$i]->dia;
	$price_xml = $xml[$i]->price;
	$price_recomend_opt_xml = $xml[$i]->price_recomend_opt;
	$price_recomend_rozn_xml = $xml[$i]->price_recomend_rozn;
	$weight_xml = $xml[$i]->weight;
	$volume_xml = $xml[$i]->volume;
	$picture_xml = $xml[$i]->picture;
	$restyar_xml = $xml[$i]->restyar;
	$restspb_xml = $xml[$i]->restspb;
	$restekb_xml = $xml[$i]->restekb;
	$restrnd_xml = $xml[$i]->restrnd;
	$restmsk_xml = $xml[$i]->restmsk;
	$comments_xml = $xml[$i]->comments;
	$article_xml = $xml[$i]->article;
	
	
	
	
	/* заносим данные в БД */
	$res = mysql_query("INSERT INTO `productdisk` SET 
						`code_xml`='{$code_xml}',
						`brand_xml`='{$brand_xml}',
						`title_xml`='{$title_xml}',
						`model_xml`='{$model_xml}',
						`color_xml`='{$color_xml}',
						`width_xml`='{$width_xml}',
						`diametr_xml`='{$diametr_xml}',
						`bolts_count_xml`='{$link_xml}',
						`bolts_spacing_xml`='{$link_xml}',
						`et_xml`='{$link_xml}',
						`dia_xml`='{$link_xml}',
						`price_xml`='{$link_xml}',
						`price_recomend_opt_xml_xml`='{$link_xml}',
						`price_recomend_rozn_xml`='{$link_xml}',
						`weight_xml`='{$weight_xml}',
						`volume_xml`='{$volume_xml}',
						`picture_xml`='{$picture_xml}',
						`restyar_xml`='{$restyar_xml}',
						`restspb_xml`='{$restspb_xml}',
						`restekb_xml`='{$restekb_xml}',
						`restrnd_xml`='{$restrnd_xml}',
						`restmsk_xml`='{$restmsk_xml}',
						`comments_xml`='{$comments_xml}',
						`article_xml`='{$article_xml}'");
						
						
						
}

?>
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 22.02.2017 в 21:45.
Tagir93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из xml-файла drzod Microsoft Office Excel 2 15.01.2014 11:10
XML и Экспорт/Импорт Greek9000 Общие вопросы Delphi 0 09.08.2011 14:37
Импорт из XML -=pasha=- БД в Delphi 8 31.03.2011 11:44
Импорт из XML в Access Tarman Microsoft Office Access 0 26.01.2011 21:36