从SSRS XML数据源中选择属性

时间:2013-04-23 10:45:42

标签: xml reporting-services

我有以下XML文件:


    <?xml version="1.0" encoding="utf-8"?>
    <root>
          <NB>
            <Company>Company 1</Company>
            <Rank Indicator="increasing">2</Rank>
            <Position Indicator="decreasing">1</Rank>
          </NB>
          <NB>
            <Company>Company 2</Company>
            <Rank Indicator="decreasing">42</Rank>
            <Position Indicator="increasing">6</Rank>
          </NB>
    </root>

我需要做的是创建一个输出以下列的数据集:

  • 公司
  • RankIndicator
  • PositionIndicator

我试过这样的事情:


    <Query>
        <ElementPath>root/ {}/NB</ElementPath>
    </Query>

但是,这不包括任何属性。我设法通过使用这样的东西得到一个属性:


    <Query>
        <ElementPath>root/ {}/NB/Rank{@Indicator}</ElementPath>
    </Query>

但是,我需要排名和位置指标,我不知道在这种情况下如何提供属性列表。 任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

如果我理解了您的评论,您必须创建一个没有连接字符串的数据源和一个新的数据集,并将您的XML内容作为查询字符串。

这是你应该做的:

  1. 使用空白连接字符串创建XML数据源。
  2. 为XML数据源创建新数据集。
  3. 在“数据集属性”对话框中,单击“查询设计器”。将打开基于文本的查询设计器对话框。
  4. 在查询窗格中,输入以下内容:<Query><XmlData>
  5. 复制XML文件,并在<XmlData>
  6. 之后将文本粘贴到查询窗格中
  7. 请务必删除<?xml version="1.0"?>
  8. 在查询结束时,添加以下内容:</XmlData></Query>
  9. 点击运行查询(!)。
  10. 在您的情况下,您的代码将是这样的:

    <Query>
        <XmlData>
            <root>
                <NB>
                    <Company>Company 1</Company>
                    <Rank Indicator="increasing">2</Rank>
                    <Position Indicator="decreasing">1</Rank>
                </NB>
                <NB>
                    <Company>Company 2</Company>
                    <Rank Indicator="decreasing">42</Rank>
                    <Position Indicator="increasing">6</Rank>
                </NB>
            </root>
        </XmlData>
    </Query>
    

    如果要指定参数:

        </XmlData>
        <ElementPath>YourField {@}</ElementPath>
    </Query>
    

    修改

    根据您的评论,检索特定字段:

    {FieldA, FieldB, FieldC}

    来源:

    http://msdn.microsoft.com/en-us/library/ms365158.aspx

    http://msdn.microsoft.com/en-us/library/ms345251.aspx