jdcrowe

halp

Aug 30th, 2017 (edited)
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.80 KB | None | 0 0
  1. declare @Object as Int;
  2. declare @Url as varchar(1000) = 'https://www.millerwelds.com/api/OwnersManualSearch/ListUploadedFiles?type=xml';
  3. declare @rt table(response nvarchar(max));
  4.  
  5.  
  6. exec sp_OACreate 'WinHttp.WinHttpRequest.5.1', @Object OUT;
  7. exec sp_OAMethod @Object, 'Open', NULL, 'get', @Url, 'False';
  8. exec sp_OAMethod @Object, 'Send';
  9. insert into @rt(response)
  10.     exec sp_OAGetProperty @Object, 'ResponseText';
  11. exec sp_OADestroy @Object;
  12.  
  13. /*variables for XML, 1 table, 1 xml variable*/
  14. declare @x xml;
  15. declare @t table(OwnersManualFileViewModel xml);
  16.  
  17. /*populate variables*/
  18. select @x = (select cast(response as xml) from @rt);
  19. insert @t select cast(response as xml) from @rt;
  20.  
  21.  
  22.  
  23. /*No namespace, all fucky...*/
  24. select @x.query('/ArrayOfOwnersManualFileViewModel/OwnersManualFileViewModel/Name') NameXML;
  25.  
  26. select
  27.     b.OwnersManual.value('(./Name/text())[1]', 'varchar(500)') OwnersManualName
  28.     , b.OwnersManual.value('(./Url/text())[1]', 'varchar(500)') OwnersManualURL
  29. from @t a
  30. cross apply OwnersManualFileViewModel.nodes('/ArrayOfOwnersManualFileViewModel/OwnersManualFileViewModel') as b(OwnersManual);
  31.  
  32.  
  33.  
  34. /*Wildcard namepsaces*/
  35. select @x.query('/*:ArrayOfOwnersManualFileViewModel/*:OwnersManualFileViewModel/*:Name') NameXML;
  36.  
  37. select
  38.     b.OwnersManual.value('(./*:Name/text())[1]', 'varchar(500)') OwnersManualName
  39.     , b.OwnersManual.value('(./*:Url/text())[1]', 'varchar(500)') OwnersManualURL
  40. from @t a
  41. cross apply OwnersManualFileViewModel.nodes('/*:ArrayOfOwnersManualFileViewModel/*:OwnersManualFileViewModel') as b(OwnersManual);
  42.    
  43.  
  44.  
  45. /*Define namespace dafuq...*/
  46. with xmlnamespaces(default 'http://schemas.datacontract.org/2004/07/MillerWelds.Website.Models')
  47.     select @x.query('/ArrayOfOwnersManualFileViewModel/OwnersManualFileViewModel/Name') NameXML;
  48.  
  49. with xmlnamespaces(default 'http://schemas.datacontract.org/2004/07/MillerWelds.Website.Models')
  50.     select
  51.         b.OwnersManual.value('(./Name/text())[1]', 'varchar(500)') OwnersManualName
  52.         , b.OwnersManual.value('(./Url/text())[1]', 'varchar(500)') OwnersManualURL
  53.     from @t a
  54.     cross apply OwnersManualFileViewModel.nodes('/ArrayOfOwnersManualFileViewModel/OwnersManualFileViewModel') as b(OwnersManual);
  55.  
  56.  
  57.  
  58. /*Getting rid of that weird p1 namespace with wildcard namespace...*/
  59. select @x.query('declare default element namespace "http://schemas.datacontract.org/2004/07/MillerWelds.Website.Models";/*:ArrayOfOwnersManualFileViewModel/*:OwnersManualFileViewModel/*:Name') NameXML;
  60.  
  61. /*Getting rid of that weird p1 namespace with defined namespace...*/
  62. with xmlnamespaces(default 'http://schemas.datacontract.org/2004/07/MillerWelds.Website.Models')
  63.     select @x.query('declare default element namespace "http://schemas.datacontract.org/2004/07/MillerWelds.Website.Models";/ArrayOfOwnersManualFileViewModel/OwnersManualFileViewModel/Name') NameXML;
Add Comment
Please, Sign In to add comment