【问题标题】:How do you work with XML collections in SSRS?您如何在 SSRS 中使用 XML 集合?
【发布时间】:2015-02-16 02:46:41
【问题描述】:

正如标题所述,我不确定如何使用 XML 集合,如果能提供任何示例,我将不胜感激。

我的例子如下:

您有一个数据源从数据库中的表中提取行。从数据库返回的 Dataset 中的字段之一包含 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>

在数据集中,您可以将字段指定为Item1Item2 (Item2 contains a collection of Item3 and Item4 (which contains a collection of Item5))

我知道以下内容 - 在表达式占位符中,您可以使用以下内容访问 Item1 的内容

=First(First!Item1.Value, "XmlDataSet)

我现在需要知道的

1 - 我如何访问Item2 中所有Item3 元素的内容,=First(First(Item2.Value, "XmlDataSet").Item3.Value, "XmlDataSet) 可以工作吗?

2 - 如果没有,我可以采用这种方法的替代方法吗?(例如,您必须在 SSRS 中使用平面 XML 文件吗)?

【问题讨论】:

    标签: xml reporting-services dataset


    【解决方案1】:

    我总是将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' 
    

    来自tablename

    希望这会有所帮助。

    【讨论】:

    • 值得拍摄。需要一些重大修补来实现这一点,还需要在我的报告中提供额外的数据集,但是,您给了我一个导致的工作。 span>
    猜你喜欢
    • 2017-12-17
    • 2010-09-07
    • 1970-01-01
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多