Импорт XML в MySQL 5.1

Пожалуйста, извините, что я не знаю … Я знаю, что в Интернете есть много документации, связанной с этим, но я до сих пор не понимаю.

Моя ситуация такова:

У меня есть XML-файл, который мне нужен для импорта и в конечном итоге заменяйте его ежедневно.

<item> <model>AA311-Pink</model> <title>1122</title> <price>19.43</price> <category>cat</category> <loc>/AA311.html</loc> <image>/aa311.jpg</image> <description>Item Info</description> <weight>0.45</weight> <option_type>Color-Color</option_type> <option_value>Pink-Pink</option_value> <suggested_retail>51.50</suggested_retail> <special_handling/> <manufacturer>Tantus</manufacturer> <manufacturer_code>VB5074 and VB5067</manufacturer_code> <packaging>Retail Packaging</packaging> <in_stock>Yes</in_stock> <lastupdated>2008-11-05 16:35:56</lastupdated> 

Мне нужно изменить несколько имен столбцов автоматически и импортировать их в несколько таблиц в моей базе данных.

Например,

  <item> <products_model>AA315</products_model> <products_name>name</products_name> <price>19.43</price> <category>cat</category> <loc>/AA315.html</loc> <products_image>aa315.jpg</products_image> <products_description>info</products_description> <products_weight>0.44</products_weight> <option_type/> <option_value/> <products_price>51.50</products_price> <special_handling/> <manufactures_name>Tantus</manufactures_name> <manufacturer_code>VA5104</manufacturer_code> <packaging>Retail Packaging</packaging> <products_status>Yes</products_status> <products_last_modified>2008-11-05 16:35:27</products_last_modified> 

А затем импортировать в MySQL DB

Столбцы: products_weight, products_model, products_image, products_price, products_last_modified

импортировать в таблицу 'продукты'

Столбцы: products_description, products_name

импорт в таблицу 'product_description

Что же касается продукта product_id, который автоматически создается? Я могу отправить SQL-вывод структуры таблицы.

Я действительно ценю помощь … Я готов заплатить, если они готовы создать полностью автоматизированную процедуру для импорта этого файла в мою базу данных; Я пользуюсь Zen Cart для размещения моей корзины покупок.

Вы должны прочитать об этом – загрузите XML в MySQL http://dev.mysql.com/doc/refman/5.5/en/load-xml.html

Это позволит вам сделать что-то вроде этого:

 mysql> LOAD XML LOCAL INFILE 'items.xml' -> INTO TABLE item -> ROWS IDENTIFIED BY '<item>'; 

Не требуется платить. Использование XML в MySQL 5.1 и 6.0 ответит на большинство ваших вопросов. Кроме того, вернитесь наверх и прочитайте всю страницу, вы можете многое сделать с XML и MySQL.

Да спасибо gx, http://web.archive.org/web/20100105150533/http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html#xml-5.1- импорт сделал это для меня. Я использовал хранимую процедуру, упомянутую там, однако она имеет небольшую ошибку, если вы хотите импортировать ее в другую таблицу, кроме «t1». Просто замените строку

 SET @ins_text = CONCAT('INSERT INTO t1 (', ins_list, ') VALUES (', val_list, ')'); 

с

 SET @ins_text = CONCAT('INSERT INTO ', database_name, '.', table_name, ' (', ins_list, ') VALUES (', val_list, ')'); 

Выполните процедуру через

 call xmldump_load('<filename>', '<schema>', '<tablename>'); 

Перед вызовом этой процедуры убедитесь, что файл для импорта доступен, например, в папке данных mysql (/ var / lib / mysql /) и выполнить ее с пользователем с предоставлением FILE.