Групово вмъкване в 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 документ като низ в една колона и след това да го анализирате с помощта на XPath функционалността на MySQL.

Тази статия на MySQL.com съдържа повече подробности: Използване XML в MySQL 5.1 и 6.0.

person Calvin    schedule 06.04.2009
comment
Здравей Калвин, използвам версия 5.1 и минах през вашата връзка, там намерих процедурата за зареждане на XMLFile данни в MYSql, използвах, не показва грешка, но данните не са заредени в таблицата, използвах я 2 пъти на 3rice, сега показва грешка, но попълва nodata на TAble. Можеш ли да ми помогнеш. - 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