Импортировать 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

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

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

Столбцы: products_description, products_name

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

А как насчет автоматически созданного product_id? Я могу отправить SQL-вывод структуры таблицы.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
0
7 648
3

Ответы 3

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

Вы должны прочитать об этом - загрузить 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>';

Вопрос относился к MySQL версии 5.1, где LOAD XML не поддерживается.

mxgr 08.11.2013 15:40

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

Другие вопросы по теме