An approach that has worked for me is to create a stored procedure that takes one paramter - an xml string. Then you can either user the build in sql tools to xpath to the data in the string or just parse it out.
Say your xml looks like this:
<data>
<col1 value="myVal">
<col2 value="myVal2">
<col3 value="myVal3">
</data>
Your sproc would look something like this:
Create Procedure InsertData @xml xml
as
DECLARE @hDoc int
--Prepare input values as an XML documnet
exec sp_xml_preparedocument @hDoc OUTPUT, @xml
Insert Into MyTable(col1,col2,col3)
select col1,col2,col3
from OPENXML(@hdoc,'/data/')
WITH (col1 varchar(100) '/data/col1/@value', col2 varchar(100) '/data/col2/@value', col3 varchar(100) '/data/col3/@value')
EXEC sp_xml_removedocument @hDoc
GO
You see more on this here:
http://technet.microsoft.com/en-us/library/ms187897.aspx