Hi Mark, Hi Martin,
yes Martin is right, the whitespace will be chopped by default leading to the observed behavior.
If you wanted to preserve whitespace globally, you can do that when creating your database.
If you only want to preserve whitespace for a given element you may do this as well:
let $db :=
'<text id="test">
<clause xml:space="preserve">
<word>A</word>a
<word>B</word>
<word>C</word>c
</clause>
</text>' => parse-xml() (: have to actually parse it for the whitespace preserve to have a an effect :)
return $db//word/concat(text(), ' ', normalize-space(./following-sibling::text()[1]))
Which returns:
Best
Michael
I think the result you get is caused by whitespace chopping during XML parsing, seems to be the default, seehttp://docs.basex.org/wiki/Command-Line_Options
-w | Toggles whitespace chopping of XML text nodes. By default, whitespaces will be chopped. |