Массовая вставка в MYSQL из XML-файлов - PullRequest
1 голос
/ 06 апреля 2009

Как мы можем загрузить данные в таблицы MySQL из файлов XML ?? Есть ли способ чтения данных из XML-файлов и записи в базу данных MySql .. У меня большая часть данных в файлах XML.

Заранее спасибо за помощь.

Ответы [ 3 ]

5 голосов
/ 06 апреля 2009

Попробуйте функцию LOAD XML (MySQL 6.0). Вот пример кода из справочного руководства:

Использование XML-документа person.xml , содержащее:

<?xml version="1.0"?>
<list>
  <person person_id="1" fname="Pekka" lname="Nousiainen"/>
  <person person_id="2" fname="Jonas" lname="Oreland"/>
  <person person_id="3"><fname>Mikael</fname><lname>Ronström</lname></person>
  <person person_id="4"><fname>Lars</fname><lname>Thalmann</lname></person>
  <person><field name="person_id">5</field><field name="fname">Tomas</field><field name="lname">Ulin</field></person>
  <person><field name="person_id">6</field><field name="fname">Martin</field><field name="lname">Sköld</field></person>
</list>

вы бы создали таблицу примерно так:

CREATE TABLE person (
    person_id INT NOT NULL PRIMARY KEY,
    fname VARCHAR(40) NULL,
    lname VARCHAR(40) NULL,
    created TIMESTAMP
);

и используйте следующую команду для импорта XML:

LOAD XML LOCAL INFILE 'person.xml'
INTO TABLE person
ROWS IDENTIFIED BY '<person>';

Или, если вы используете MySQL 5.0, вы можете использовать LOAD_FILE , чтобы загрузить весь XML-документ в виде строки в один столбец, а затем проанализировать его, используя функциональные возможности MySQL XPath.

Эта статья на MySQL.com содержит более подробную информацию: Использование XML в MySQL 5.1 и 6.0 .

1 голос
/ 07 апреля 2009

Если вы ищете простое решение, Navicat имеет довольно простую функцию импорта xml.

0 голосов
/ 06 апреля 2009

Почему бы не использовать XSL для преобразования XML в стандартные операторы вставки SQL, а затем использовать команду "source" из клиента mysql для чтения вывода?

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