Turning content into markup
File: Data.xml <order> <car model="A"> <id>0001</id> <name language="en">name 1</name> </car> <car model="B"> <id>0002</id> <name language="en">name 2</name> </car> <car model="B"> <id>0003</id> <name language="en">name 3</name> </car> </order> File: Query.xquery for $model in distinct-values(doc("Data.xml")/order/car/@model) return element {$model} {doc("Data.xml")/order/car[@model = $model]/name} Output: <?xml version="1.0" encoding="UTF-8"?> <A> <name language="en">name 1</name> </A> <B> <name language="en">name 2</name> <name language="en">name 3</name> </B>