Mein Ziel ist es, eine CSV-Datei aus XML mit Saxon zu generieren. Wenn der (! Vereinfachte) läuft xquery unten in Saxon (PE, 9.7.0.15), im Ergebnis für jede Zeile nach der ersten Ergebniszeile wird ein zusätzlicher Raum hinzugefügt:So verhindern Sie zusätzliche Leerzeichen beim Serialisieren von XML in Text (CSV)
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method "text";
let $document := <A>
<B><C>1</C><D>2</D></B>
<B><C>3</C><D>4</D></B>
<B><C>5</C><D>6</D></B>
</A>
for $b in $document/B
return string-join(for $x in $b/* return $x, ",") || "
"
das Ergebnis:
1,2
3,4
5,6
Ich kann einfach nicht diesen zusätzlichen Raum auf eine "saubere" Weise entfernt (das heißt: ohne das Ergebnis nachbearbeiten).
Irgendwelche Idee, wie man eine 'saubere' csv (Text) Akte erzeugt?
für xquery 3.x eine std Serialisierung Option gibt es: https : //www.w3.org/TR/xslt-xquery-serialization-31/#XML_ITEM-SEPARATOR aber das hat mir nicht geholfen (hätte das vorher erwähnen sollen, sorry) – DiZzZz