[xquery-talk] Whitespace problem in CSV-like output
Per Bothner
per at bothner.com
Fri Oct 17 03:19:25 PDT 2008
Yves Forkl wrote:
> Hi,
>
> from a very simple XML input, I would like to create a CSV-like
> output, putting each record (as I see them) in a line of its own, with
> its fields separated by some delimiter like a semicolon.
A trick is to use text nodes, because that suppresses the extra spaces:
let $entries := doc("file:/home/bothner/tmp/demo.xml")/list/entry
for $property1 in distinct-values($entries/property1),
$property2 in distinct-values($entries[property1 =
$property1]/property2)
let $selected_entries := $entries[property1 = $property1 and
property2 = $property2]
order by $property1, $property2
return(
string-join(
($property1, $property2,
replace(xs:string(
sum(for $quantity in $selected_entries/quantity
return xs:decimal(replace($quantity, ",", ".")))),
"\.",
",")),
";"),
text{" "})
Produces:
A;33;2
B;22;0,5
(I haven't tested this on Saxon, just Qexo.)
More information about the talk
mailing list