2017-10-20 106 views
1

我需要从我们的API获取XML响应并在SSRS中进行查询。在我的自定义代码中,使用System.Net.Webclient,我查询我们的API并获得结果。这里是通过VB代码。将动态XML添加到SSRS中的数据源

Public Function getXML() As String 

    Dim client = New System.Net.WebClient() 

    client.Headers.Add("Authorization", "MY TOKEN HERE") 

    client.Headers.Add(System.Net.HttpRequestHeader.Accept, "text/xml") 
    Dim RestURL = "MY_URL_HERE" 
    Dim text = client.DownloadString(RestURL) 
Return text 
End Function 

正如你所看到的,这将返回一个字符串。我添加一个数据源并将其设置为这个XML字符串,但这不起作用。我尝试创建一个XElement和XDocument对象并将其传递,但​​这也不起作用。在处理ConnectString表达式期间出现错误任何帮助,将不胜感激。

我知道我的代码返回一个XML字符串。我通过添加到文本框进行检查。

+0

看看这个MSDN教程帮助:https://technet.microsoft.com/en-us/library/ aa964129(v = SQL.90)的.aspx – jdweng

回答

0

对于那些有兴趣,我只喂线直接进入SQL服务器和查询它有

declare @myDoc xml 


set @myDoc [email protected] --fed to a parameter first and then into the query 


;WITH XMLNAMESPACES(DEFAULT 'http://<custom namespace here>') 
SELECT x.v.value('name[1]', 'VARCHAR(MAX)') as name, 
     x.v.value('date[1]', 'date') as date, 
     x.v.value('ID[1]', 'VARCHAR(max)') as ID, 
     x.v.value('Title[1]', 'VARCHAR(max)') as Title 

FROM @myDoc.nodes('/root/xyz') x(v)