You don't need the temp table and you don't need the calls to sp_xml*
.
Load your XML like this.
declare @XML xml
set @XML =
(
select *
from openrowset(bulk 'd:\hotels.xml', single_blob) as data
)
The XML you have provided is a poor match to the query you are using.
Here is something that builds a comma separated string with the XML in your question.
select
(
select ', '+T.N.value('text()[1]', 'varchar(400)')
from @XML.nodes('images/url') as T(N)
for xml path(''), type
).value('substring(text()[1], 3)', 'varchar(max)')