try this:
Declare @Xml XML =
'<documentelement>
<articletable>
<articleid>1</articleid>
<title>article one</title>
<contents>article one contents </contents>
</articletable>
<articletable>
<articleid>2</articleid>
<title>article two</title>
<contents>article two contents </contents>
</articletable>
<articletable>
<articleid>3</articleid>
<title>article three</title>
<contents>article three contents</contents>
</articletable>
</documentelement>'
Select t.c.value('articleid[1]','varchar(4)') [ArticleId],
t.c.value('title[1]','varchar(40)')[Title],
t.c.value('contents[1]','varchar(100)')[Contents]
From @XML.nodes('/documentelement/articletable') as t(c)
Output:
ArticleId Title Contents
1 article one article one contents
2 article two article two contents
3 article three article three contents
If you want it as a procedure...
Create Proc Test
@XML XMl,
@TableName Varchar(100)
as
Begin
SET NOCOUNT ON;
Declare @Sql varchar(Max)
Select t.c.value('articleID[1]','Int') [ArticleId],
t.c.value('title[1]','varchar(40)')[Title],
t.c.value('contents[1]','varchar(100)')[Contents]
into #Temp
From @XML.nodes('/DocumentElement/articletable') as t(c)
Set @Sql = 'Insert into '+@TableName +' Select * From #Temp'
Exec (@Sql)
Select 'Data Succesfully Inserted into '+ @TableName [Result]
End