You may try the below query if you are dynamically looking up with Id
DECLARE @id as int =1
DECLARE @xmlMessage XML = (SELECT fvalue from xmlmsg where Id=@id)
SELECT
ColumnName = A.value('local-name(.)', 'varchar(max)'),
ColumnValue = A.value('(.)[1]', 'varchar(max)')
FROM
@xmlMessage.nodes('vs/*') AS B(A)
Here are the scripts to generate the sample table and data
USE [MyDatabase]
GO
/****** Object: Table [dbo].[xmlmsg] Script Date: 20-Nov-19 2:41:59 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[xmlmsg](
[Id] [int] IDENTITY(1,1) NOT NULL,
[fvalue] [xml] NULL,
CONSTRAINT [PK_XmlMessages] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[xmlmsg] ON
GO
INSERT [dbo].[xmlmsg] ([Id], [fvalue]) VALUES (1, N'<vs><v>Sam</v></vs><vs><v>David</v><v>Nathan</v></vs><vs><v>25.5</v></vs>')
GO
SET IDENTITY_INSERT [dbo].[xmlmsg] OFF
GO