LOAD XML (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Met het MySQL-commando load xml kun je XML-bestanden importeren. Het heeft echter beperkingen:

  • Het kan alleen overweg met platte bestandne, dus zonder subnodes of niet-unieke tagnamen
  • De doeltabel moet al gedefineerd zijn, inclusief alle velden. Dat kan een lastig puzzeltje worden
  • CDATA-velden worden genegeerd. Da's nog het minste probleem, want je kunt de bron eerst parsen en daarbij de CDATA-tags verwijderen.

Simpel voorbeeld

Doeltabel:

Tabeldefinitie. Auto increment niet vergeten! De namen van de velden komen overeen met de XML-tags

Brondata:

<entry>
  <title> title01 </title>
  <link> link01 </link>
</entry>
<entry>
  <title> title02 </title>
  <link> link02 </link>
</entry>

SQL-code:

load xml local infile '/tmp/02-test.xml' 
  into table tmp
  rows identified by '<entry>';

Zie ook