2017-06-03 5 views
3

Considérez le code XML suivant:données XML Convertir au format CSV chaîne avec XQuery

<LIST> 
    <Name>Jon</Name> 
    <Name>Dan</Name> 
    <Name>Bill</Name> 
    <Name>Jack</Name> 
</LIST> 

je besoin d'une sortie en tant que chaîne au format CSV comme Jon,Dan,Bill,Jack en utilisant XQuery.

Je l'ai fait en utilisant les expressions FLWOR et normalize-space, puis en remplaçant les espaces par des virgules. Cependant, je crois qu'il devrait y avoir une meilleure façon de le faire dans XQuery.

Répondre

5

Vous pouvez utiliser la fonction string-join pour ce faire:

string-join(//Name/text(),",") 

fn: string-jointure (arg1 $ xs: string *, arg2 $ xs: string) xs: string

Renvoie une chaîne xs: créée en concaténant les membres de la séquence $ arg1 en utilisant $ arg2 comme séparateur.

https://www.w3.org/TR/xpath-functions/#func-string-join

+1

'/ texte()' est étranger ici. Voir https://developer.marklogic.com/blog/text-is-a-code-smell. – joewiz