С XPath 2.0 string-join(//category/name,",")
выведет: one,two,three,four
, но я не уверен, что ваше программное обеспечение поддерживает это.
С XPath 1.0, поскольку вы не знаете количество элементов category
, вы можете написать выражение, которое поддерживает до 10 элементов (добавьте больше, если хотите):
substring-before(concat(//category[1]//name,",",//category[2]//name,",",//category[3]//name,",",//category[4]//name,",",//category[5]//name,",",//category[6]//name,",",//category[7]//name,",",//category[8]//name,",",//category[9]//name,",",//category[10]//name),",,")
Вывод: one,two,three,four