you can get all data by one query with nodes() function:
select
t.c.value('(text())[1]', 'nvarchar(10)') as [Type]
from @xml.nodes('/Info/Data/DataInfo/Type') as t(c)
Or, if you really want to loop, you can use sql:variable() extension function:
DECLARE @nodeCount int = 1
WHILE EXISTS (SELECT table.value('(Info/Data/DataInfo/Type/node())[sql:variable("@nodeCount")][1]', 'nvarchar(10)') from table)