1let $doc := <doc> 2<item><key1>1</key1> <key2>1</key2> <key3>1</key3> <value>a</value></item> 3<item><key1>1</key1> <key2>1</key2> <key3></key3> <value>b</value></item> 4<item><key1>1</key1> <key2>1</key2> <key3></key3> <value>c</value></item> 5<item><key1>1</key1> <key3>1</key3> <value>d</value></item> 6<item><key1>1</key1> <key3>1</key3> <value>e</value></item> 7<item><key1>1</key1> <key3>2</key3> <value>f</value></item> 8<item><key1>1</key1> <key3>2</key3> <value>g</value></item> 9</doc> 10for $item in $doc/item 11let $key1 := $item/key1 12let $key2 := $item/key2 13let $key3 := $item/key3 14let $value := $item/value 15group by $key1, $key2, $key3 16return <result key1="{$key1}" key2="{$key2}" key3="{$key3}">{$value/text()}</result> 17