You can find a solution using PHP. There are very functions that handle XML parsing returning an structure. Have a look at some sample code:
Code:
$ cat test.php
<?php
$file = "test.xml";
$xml = simplexml_load_file($file);
foreach($xml->datafield as $key => $value) {
echo "Tag: " . $value->attributes()->tag . "\n";
foreach($value->subfield as $k => $v) {
echo "subfield: " . $v . " code: " . $v->attributes()->code . "\n";
}
}
$ cat test.xml
<?xml version="1.0" encoding="UTF-8"?>
<record
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.loc.gov/MARC21/slim">
<leader>00764nas </leader>
<controlfield tag="221">011258</controlfield>
<datafield tag="578" ind1=" " ind2=" ">
<subfield code="a">jaun</subfield>
</datafield>
<datafield tag="356" ind1=" " ind2=" ">
<subfield code="a"></subfield>
<subfield code="c"></subfield>
</datafield>
<datafield tag="333" ind1=" " ind2=" ">
<subfield code="d">ali</subfield>
<subfield code="p">22</subfield>
</datafield>
<datafield tag="222" ind1=" " ind2=" ">
<subfield code="c"></subfield>
<subfield code="d">1984</subfield>
</datafield>
</record>
$ php test.php
Tag: 578
subfield: jaun code: a
Tag: 356
subfield: code: a
subfield: code: c
Tag: 333
subfield: ali code: d
subfield: 22 code: p
Tag: 222
subfield: code: c
subfield: 1984 code: d
With this you can then extract the information you want either reformatting it or create your own insert statements within the PHP and execute.