正如标题所述,我不确定如何使用XML集合,并会欣赏可以提供的任何示例。
我的例子如下:
您有一个数据源从数据库中的表中提取行。从数据库返回的数据集中的一个字段包含XML
<Root>
<Item1>Test</Item1>
<Item2>
<Item3>95 Points</Item3>
<Item3>269 Points</Item3>
<Item4>
<Item5>Gold Star</Item5>
<Item5>Silver Star</Item5>
</Item4>
</Item2>
<Root>
在数据集中,您可以将字段指定为Item1
和Item2 (Item2 contains a collection of Item3 and Item4 (which contains a collection of Item5))
。
我知道以下内容 - 在表达式占位符中,您可以使用以下内容访问Item1
的内容
=First(First!Item1.Value, "XmlDataSet)
我现在需要知道
1 - 如何访问Item3
中所有Item2
元素的内容,=First(First(Item2.Value, "XmlDataSet").Item3.Value, "XmlDataSet)
是否有效?
2 - 如果没有,是否有其他方法可以采用这种方法,(因为必须在SSRS中使用平面XML文件)?
答案 0 :(得分:0)
我总是将SQL端的XML分解为列。 您可以使用XQuery函数访问XML节点。
选择
[XMLColumnName].value('(/Root//Item1/node())[1]', 'nvarchar(max)') AS 'Item1' ,
[XMLColumnName].value('(/Root//Item2/Item3/node())[1]', 'nvarchar(max)') AS 'Item3_1',
[XMLColumnName].value('(/Root//Item2/Item3/node())[2]', 'nvarchar(max)') AS 'Item3_2'
FROM tableName
希望这有帮助。