the only reason the [] does anything is because of the text() proc, which replaces empty []s with its other arguments.