Массовая вставка в MYSQL из файлов XML

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

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


person Ashok Gupta    schedule 06.04.2009    source источник


Ответы (3)


Попробуйте функцию ЗАГРУЗИТЬ 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.

person Calvin    schedule 06.04.2009
comment
Привет, Кальвин, я использую версию 5.1 и перешел по вашей ссылке, там я нашел процедуру загрузки данных XML-файла в MYSql, которую я использовал, она не показывает ошибки, но данные не были загружены в таблицу, я использовал ее дважды 3rice, теперь он показывает ошибку, но не заполняет данные в таблице. Вы можете помочь мне. - person Ashok Gupta; 08.04.2009
comment
Почему бы вам не опубликовать код, который у вас есть, в вопрос; таким образом мы сможем поближе взглянуть на то, что вы делаете, и, возможно, выяснить, что происходит. - person Calvin; 08.04.2009

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

person Community    schedule 07.04.2009

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

person Phillip B Oldham    schedule 06.04.2009
comment
может быть проще использовать генерацию CSV вместо SQL из XML, но общая идея самая простая. - person Javier; 06.04.2009