Импортируйте XML в MySQL 5.1 - PullRequest
6 голосов
/ 17 ноября 2008

Прошу прощения за отсутствие знаний ... Я знаю, что в интернете много документации, связанной с этим, но я до сих пор не понимаю.

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

У меня есть 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

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

Колонки: описание продуктов, имя продуктов

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

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

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

Ответы [ 3 ]

1 голос
/ 19 января 2012

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

Да, спасибо, 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.

0 голосов
/ 17 ноября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...