Difference between revisions of "CSV Module"

From BaseX Documentation
Jump to navigation Jump to search
Line 30: Line 30:
 
{ 'separator' : ';', ... }
 
{ 'separator' : ';', ... }
 
</pre>
 
</pre>
 +
|-
 +
| '''Errors'''
 +
|{{Error|BXCS0001|#Errors}} the input cannot be converted.<br/>{{Error|BXCS0003|#Errors}} the specified separator must be a single character.
 +
|}
  
 +
==csv:serialize==
 +
{| width='100%'
 +
|-
 +
| width='120' | '''Signatures'''
 +
|{{Func|csv:serialize|$input as node(), $options as item()|xs:string}}
 +
|-
 +
| '''Summary'''
 +
|Serializes the node specified by {{Code|$input}} as CSV data, and returns the result as {{Code|xs:string}}.<br />XML documents can also be serialized as CSV if the [[Serialization|Serialization Option]] {{Code|"method"}} is set to {{Code|"csv"}}.<br/>The {{Code|$options}} argument can be used to control the way the node is serialized. The following options are available:
 +
* {{Code|separator}} defines the character which separates columns in a row. By default, this is a comma ({{Code|,}}).
 +
* {{Code|headers}} specifies if the input element names are to be interpreted as header names. The default value is {{Code|false}}.
 +
Options can either be specified<br />
 +
* as children of an {{Code|<csv:options/>}} element; e.g.:
 +
<pre class="brush:xml">
 +
<csv:options>
 +
  <csv:separator value=';'/>
 +
  ...
 +
</csv:options>
 +
</pre>
 +
* or as map, which contains all key/value pairs:
 +
<pre class="brush:xquery">
 +
{ 'separator' : ';', ... }
 +
</pre>
 
|-
 
|-
 
| '''Errors'''
 
| '''Errors'''
|{{Error|BXCS0001|#Errors}} the specified separator must be a single character.
+
|{{Error|BXCS0002|#Errors}} the input cannot be serialized.<br/>{{Error|BXCS0003|#Errors}} the specified separator must be a single character.
 
|}
 
|}
  
Line 41: Line 67:
 
! width="110"|Code
 
! width="110"|Code
 
|Description
 
|Description
 +
|-
 +
|{{Code|BXCS0001}}
 +
| The input cannot be converted.
 +
|-
 +
|{{Code|BXCS0002}}
 +
| The node cannot be serialized.
 
|-
 
|-
 
|{{Code|BXCS0001}}
 
|{{Code|BXCS0001}}

Revision as of 15:32, 24 September 2013

This XQuery Module contains a single function to parse CSV input. CSV (comma-separated values) is a popular representation for tabular data, exported e. g. from Excel.

Conventions

All functions in this module are assigned to the http://basex.org/modules/csv namespace, which is statically bound to the csv prefix.
All errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.

CSV Functions

csv:parse

Signatures csv:parse($input as xs:string) as element(csv)
csv:parse($input as xs:string, $options as item()) as element(csv)
Summary Converts the CSV data specified by $input to XML, and returns the result as element(csv) value.
The $options argument can be used to control the way the input is converted. The following options are available:
  • separator defines the character which separates columns in a row. By default, this is a comma (,).
  • headers specifies if the input contains a header row. The default value is false.

Options can either be specified

  • as children of an <csv:options/> element; e.g.:
<csv:options>
  <csv:separator value=';'/>
  ...
</csv:options>
  • or as map, which contains all key/value pairs:
{ 'separator' : ';', ... }
Errors BXCS0001: the input cannot be converted.
BXCS0003: the specified separator must be a single character.

csv:serialize

Signatures csv:serialize($input as node(), $options as item()) as xs:string
Summary Serializes the node specified by $input as CSV data, and returns the result as xs:string.
XML documents can also be serialized as CSV if the Serialization Option "method" is set to "csv".
The $options argument can be used to control the way the node is serialized. The following options are available:
  • separator defines the character which separates columns in a row. By default, this is a comma (,).
  • headers specifies if the input element names are to be interpreted as header names. The default value is false.

Options can either be specified

  • as children of an <csv:options/> element; e.g.:
<csv:options>
  <csv:separator value=';'/>
  ...
</csv:options>
  • or as map, which contains all key/value pairs:
{ 'separator' : ';', ... }
Errors BXCS0002: the input cannot be serialized.
BXCS0003: the specified separator must be a single character.

Errors

Code Description
BXCS0001 The input cannot be converted.
BXCS0002 The node cannot be serialized.
BXCS0001 The specified separator must be a single character.

Changelog

The module was introduced with Version 7.7.2.