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: 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() })
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#CSVPARSER
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 >

⚡Generated with XQuery