Для извлечения всех потомков я советую использовать // нотацию. Это вернет всех текстовых потомков ниже элемента. Ниже приведен фрагмент кода xquery, который получает все текстовые узлы-потомки и форматирует его, как указал Мартин.
xquery version "1.0";
let $a :=
<a>
apples
<b><c/></b>
pears
</a>
return normalize-space(string-join($a//text(), " "))
Или, если у вас есть свои собственные требования к форматированию, вы можете начать с просмотра каждого текстового элемента в следующем xquery.
xquery version "1.0";
let $a :=
<a>
apples
<b><c/></b>
pears
</a>
for $txt in $a//text()
return $txt