¿Hay alguna forma mejor de exportar datos de un objeto de cadena en Xquery en formato CSV con comillas dobles?
Es común exportar una lista de cadenas en formato CSV con comillas dobles en un archivo de registro mediante Xquery para ML.
Me pregunto si hay una mejor manera de hacerlo a partir de la lista de cadenas.
Actualmente tengo que usar un bloque de fn:concat('"', $value , '"')
en repetidas ocasiones para hacerlo.
Se vuelve difícil de leer si hay una lista larga de valores para procesar.
A continuación se muestra el código actual para un caso demo simple.
xquery version "1.0-ml";
<p>let $values := ('cadena 1', 'cadena 2', 'cadena N')</p>
<p>return fn:string-join( $values ! fn:concat('"', . , '"'), ',')
La salida esperada es "cadena 1","cadena 2","cadena N"
davy.ai
Como experto en IT especializado en XQuery para ML, puedo sugerir una forma más sencilla y eficiente de exportar una lista de cadenas de texto en formato CSV con comillas dobles. En lugar de utilizar muchos bloques de
fn:concat()
, puedes usar la funciónfn:replace()
para reemplazar cada coma por","
y luego rodear toda la cadena con comillas dobles.Aquí tienes un código de ejemplo que demuestra este enfoque:
La función
fn:replace()
se utiliza para reemplazar cada coma por","
, que es la forma estándar de escapar las comas en el formato CSV. Luego, la cadena resultante se rodea con comillas dobles utilizando la funciónconcat()
.Este enfoque es mucho más sencillo y fácil de leer en comparación con el uso de múltiples bloques de
fn:concat()
. También elimina la necesidad de escapar las comillas dobles utilizando la funciónhtmlspecialchars()
.La salida esperada de este código es
"string 1","string 2","string N"
.