3

我有以下 XML 文件:

    <?xml 版本="1.0" 编码="utf-8"?>
    <根>
          <注意>
            <公司>公司1</公司>
            <Rank Indicator="increasing">2</Rank>
            <Position Indicator="decreasing">1</Rank>
          </NB>
          <注意>
            <公司>公司 2</公司>
            <Rank Indicator="decreating">42</Rank>
            <Position Indicator="increasing">6</Rank>
          </NB>
    </root>

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

  • 公司
  • 排名指标
  • 位置指示器

我试过这样的事情:

    <查询>
        <ElementPath>root/ {}/NB</ElementPath>
    </查询>

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

    <查询>
        <ElementPath>root/ {}/NB/Rank{@Indicator}</ElementPath>
    </查询>

但是,我需要 Rank 和 Position 指标,我不确定在这种情况下如何提供属性列表。任何帮助将不胜感激。谢谢。

4

1 回答 1

3

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

这是你应该做的:

  1. 使用空白连接字符串创建 XML 数据源。
  2. 为 XML 数据源创建一个新数据集。
  3. 在数据集属性对话框中,单击查询设计器。基于文本的查询设计器对话框打开。
  4. 在查询窗格中,输入以下内容:<Query><XmlData>
  5. 复制您的 XML 文件并将文本粘贴到<XmlData>.
  6. 一定要删除<?xml version="1.0"?>
  7. 在查询的末尾,添加以下内容: </XmlData></Query>
  8. 单击运行查询 (!)。

在您的情况下,您的代码将是这样的:

<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

于 2013-04-23T13:06:03.057 回答