When doing a value-of select (xmlstarlet sel -t -v), xmlstarlet 1.3.0 does not not insert a $#10 / newline after the first node is printed out. This causes the first and second node values to be mashed together. The attached patch inserts a NL after the first node.
Patch against xmlstarlet 1.3.0
Looks like this was fixed in mainline with 124ac3db, by putting the NL *before* the value of the second node, instead of after.
Yeah this was reported in Bug #2563866, and fixed with 688c0c102. I recommend updating to version 1.3.1 which has the fix.
Note that I didn't put a newline after the first node because so that value-of a single node will be the same as before, no extra newline.