Actually the predicate [.] will always be true when applied to a node (the node exists), and the predicate [empty(.)] will always be false (the sequence containing the node is not empty). You haven't shown the source document and it's nto entirely clear what you requirement is, but I suspect it is test="string(.)"
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference