set parser csv header
How do I set the CSV parser to use "header" true?
so that when the record is imported it has the header information as below?
nicholas@mordor:~/flwor/csv$ nicholas@mordor:~/flwor/csv$ basex BaseX 9.0.1 [Standalone] Try 'help' to get more information.
Quoted text · 2 lines
> > create database addressbook
Database 'addressbook' created in 240.02 ms.
Quoted text · 2 lines
> > open addressbook
Database 'addressbook' was opened in 0.06 ms.
Quoted text · 2 lines
> > set parser csv
PARSER: csv
Quoted text · 2 lines
> > add addressbook.csv
Resource(s) added in 23.74 ms.
Quoted text · 2 lines
> > xquery .
<csv>
<record>
<entry>Name</entry>
<entry>First Name</entry>
<entry>Address</entry>
<entry>City</entry>
</record>
<record>
<entry>Huber</entry>
<entry>Sepp</entry>
<entry>Hauptstraße 13</entry>
<entry>93547 Hintertupfing</entry>
</record>
</csv>
Query executed in 219.65 ms.Quoted text · 2 lines
> > exit
Enjoy life. nicholas@mordor:~/flwor/csv$ nicholas@mordor:~/flwor/csv$ basex addressbook.xq <csv> <record> <Name>Huber</Name> <First_Name>Sepp</First_Name> <Address>Hauptstraße 13</Address> <City>93547 Hintertupfing</City> </record> </csv>nicholas@mordor:~/flwor/csv$ nicholas@mordor:~/flwor/csv$ nicholas@mordor:~/flwor/csv$ cat addressbook.csv Name,First Name,Address,City Huber,Sepp,Hauptstraße 13,93547 Hintertupfing
nicholas@mordor:~/flwor/csv$ nicholas@mordor:~/flwor/csv$ cat addressbook.xq xquery version "3.1";
let $text := file:read-text('addressbook.csv')
return csv:parse($text, map { 'header': true() })Quoted text · Nicholas · 81 lines
On Sun, Dec 13, 2020 at 2:39 PM Nicholas <saunders.nicholas at gmail.com> wrote: > > How do I set the CSV parser to use "header" true? > > > so that when the record is imported it has the header information as below? > > > nicholas@mordor:~/flwor/csv$ > nicholas@mordor:~/flwor/csv$ basex > BaseX 9.0.1 [Standalone] > Try 'help' to get more information. > > > > create database addressbook > Database 'addressbook' created in 240.02 ms. > > > > open addressbook > Database 'addressbook' was opened in 0.06 ms. > > > > set parser csv > PARSER: csv > > > > add addressbook.csv > Resource(s) added in 23.74 ms. > > > > xquery . > <csv> > <record> > <entry>Name</entry> > <entry>First Name</entry> > <entry>Address</entry> > <entry>City</entry> > </record> > <record> > <entry>Huber</entry> > <entry>Sepp</entry> > <entry>Hauptstraße 13</entry> > <entry>93547 Hintertupfing</entry> > </record> > </csv> > Query executed in 219.65 ms. > > > > exit > Enjoy life. > nicholas@mordor:~/flwor/csv$ > nicholas@mordor:~/flwor/csv$ basex addressbook.xq > <csv> > <record> > <Name>Huber</Name> > <First_Name>Sepp</First_Name> > <Address>Hauptstraße 13</Address> > <City>93547 Hintertupfing</City> > </record> > </csv>nicholas@mordor:~/flwor/csv$ > nicholas@mordor:~/flwor/csv$ > nicholas@mordor:~/flwor/csv$ cat addressbook.csv > Name,First Name,Address,City > Huber,Sepp,Hauptstraße 13,93547 Hintertupfing > > nicholas@mordor:~/flwor/csv$ > nicholas@mordor:~/flwor/csv$ cat addressbook.xq > xquery version "3.1"; > > let $text := file:read-text('addressbook.csv') > return csv:parse($text, map { 'header': true() }) > > > nicholas@mordor:~/flwor/csv$ > > see also: > > > https://stackoverflow.com/q/65275618/4531180 > > > > thanks, > > > Nick >
Written for BaseX 9.4. BaseX may have changed since: please check the current documentation.