This:
preceding-sibling::/@eol
is a syntax error. You can't leave out the node-test.
This:
preceding-sibling::*/@eol
selects the @eol attribute of all the preceding siblings. In a boolean context, it returns true if any preceding sibling has an @eol attribute.
I suspect you want
test="preceding-sibling::*[1]/@eol"
which tests whether the immediately preceding sibling has an @eol attribute.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference