将动态XML添加到SSRS中的数据源
问题描述:
我需要从我们的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字符串。我通过添加到文本框进行检查。
答
对于那些有兴趣,我只喂线直接进入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)
看看这个MSDN教程帮助:https://technet.microsoft.com/en-us/library/ aa964129(v = SQL.90)的.aspx – jdweng