Hi... Have you tried something like below.. This works fine with your example xml:
DECLARE @xml XML
SELECT @xml = CONVERT(XML, (SELECT * FROM OPENROWSET(BULK N'c:\testxml.xml', SINGLE_BLOB) AS xmldocument), 2)
SELECT t.c.value('(./text())[1]', 'varchar(30)')
FROM @xml.nodes('//author') AS T(c)