set parser csv header
Sunday, 13 December 2020 · 2 messages · last reply 15 Dec 2020
N
Nicholas13 Dec 2020 15:39 #
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: csvQuoted 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() })nicholas@mordor:~/flwor/csv$
see also:
https://stackoverflow.com/q/65275618/4531180
thanks,
Nick
CG
Christian Grün15 Dec 2020 11:30 #
Hi Nicholas,
Just assign your configuration to the
CSVPARSER option [1].
Hope this helps,
Christian
[1] https://docs.basex.org/wiki/Options#CSVPARSERQuoted 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.
⚡Generated with XQuery