As what you want to do is relatively unusual (having a single row xts is unusual), I think the idiom you have found might be as good as anything else.
The other way I can think of would be to add each column one at a time:
D1$a = 5
D1$b = 6
D1$c = 7
D1$d = 8
D1$e = 9
This gives:
> D1
SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted a b c d e
2007-01-03 142.25 142.86 140.57 141.37 94807600 122.03 5 6 7 8 9