xml要素をXQueryでcsvにエクスポートするために、eXist-dbに基づくWebアプリケーションで関数を書きました。すべてうまく動作しますが、自分の要素にü、äまたはßのようなウムラウトがありますが、それは私のCSVに間違った方法で表示されます。私はfn:normalize-unicodeを使ってコンテンツをエンコードしようとしましたが、これは動作しません。ここ は私のコードスニペットのminimalized例です。XQueryでのエンコード文字列
let $input =
<root>
<number>1234</number>
<name>Aufmaß</name>
</root>
let $csv := string-join(
for $ta in $input
return concat($ta/number/text(), fn:normalize-unicode($ta/name/text())))
let $csv-ueber-string := concat($csv-ueber, string-join($massnahmen, $nl))
let $set-content-type := response:set-header('Content-Type', 'text/csv')
let $set-accept := response:set-header('Accept', 'text/csv')
let $set-file-name := response:set-header('Content-Disposition', 'attachment; filename="export.csv"')
return response:stream($csv, '')
だから、/どのようにあなたのXQueryを実行しない場合は、どのように結果を保存したり、保存するか、どのようにあなたは結果を見てください、そのエンコーディングは、あなたがしたいですかあなたのCSVのために? –
私はeXist-dbに基づくWebアプリケーションでXQueryを使用しています。私は結果を関数レスポンスで保存します:stream()(私は最初の投稿を編集しました)。 CSVをダウンロードした後、私はそれをExcelで開き、エンコーディングが実際には機能していないことに気付きました。まあ、私は文字列をエンコーディングする初心者ですが、utf-8またはcp1250は作業を行う必要があります。 – Felix
ソリューションの一部が 'response:set-header'や' response:stream'のような関数に適切なオプションや設定を使用していると確信しているので、eXist用のタグを追加したいかもしれません。 –