本地xml文件到ssrs报告

时间:2017-02-02 13:34:59

标签: sql xml reporting-services report

我有以下xml

<Configuration>
  <Name>Test</Name>
  <Description />
  <CreatedOn>1/16/2017-2:59:32-PM</CreatedOn>
  <CreatedBy>admin</CreatedBy>
  <LastModifiedOn>1/16/2017-2:59:32-PM</LastModifiedOn>
  <LastModifiedBy>admin</LastModifiedBy>
  <IsConfigured>False</IsConfigured>
  <ParentId>3</ParentId>
  <VersionMajor>0</VersionMajor>
  <VersionMinor>4</VersionMinor>
  <LifecycleState>Development</LifecycleState>
  <Archived>False</Archived>
  <IsTest>False</IsTest>
  <RunMode>Timed</RunMode>
  <SelectedTimeUnit>Milliseconds</SelectedTimeUnit>
  <PulseInMs>2000</PulseInMs>
  <ClientLocation />
  <IsValid>True</IsValid>
  <Instrument>
    <Adapter-Simulator1>
      <DeviceInstanceName>Sim1</DeviceInstanceName>
      <DeviceConfiguration>
        <Channels>1</Channels>
        <IntensityMax>1</IntensityMax>
        <SimulatorMode>HiLo</SimulatorMode>
        <StartChannel>0</StartChannel>
        <Wavelength>1</Wavelength>
        <WavelengthEnd>100</WavelengthEnd>
        <WavelengthStartq>1</WavelengthStartq>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>1</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>2</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>3</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>4</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>5</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>6</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>7</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>8</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>9</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>10</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>11</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>12</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>13</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>14</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>15</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>16</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>17</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>18</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>19</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>20</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>21</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>22</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>23</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>24</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>25</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>26</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>27</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>28</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>29</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>30</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>31</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>32</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>33</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>34</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>35</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>36</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>37</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>38</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>39</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>40</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>41</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>42</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>43</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>44</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>45</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>46</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>47</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>48</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>49</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>50</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>51</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>52</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>53</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>54</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>55</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>56</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>57</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>58</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>59</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>60</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>61</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>62</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>63</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>64</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>65</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>66</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>67</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>68</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>69</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>70</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>71</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>72</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>73</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>74</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>75</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>76</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>77</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>78</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>79</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>80</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>81</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>82</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>83</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>84</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>85</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>86</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>87</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>88</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>89</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>90</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>91</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>92</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>93</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>94</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>95</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>96</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>97</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>98</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>99</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>100</Name>
        <ChannelNumber>2</ChannelNumber>
        <Name>Temperature-K</Name>
        <ChannelNumber>3</ChannelNumber>
        <Name>Pressure-inHg-absolute</Name>
      </Outputs>
    </Adapter-Simulator1>
    <Adapter-Simulator3>
      <DeviceInstanceName>Sim3</DeviceInstanceName>
      <DeviceConfiguration>
        <Channels>1</Channels>
        <IntensityMax>1</IntensityMax>
        <SimulatorMode>Random</SimulatorMode>
        <StartChannel>0</StartChannel>
        <Wavelength>1</Wavelength>
        <WavelengthEnd>140</WavelengthEnd>
        <WavelengthStartq>120</WavelengthStartq>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>120</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>121</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>122</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>123</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>124</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>125</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>126</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>127</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>128</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>129</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>130</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>131</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>132</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>133</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>134</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>135</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>136</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>137</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>138</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>139</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>140</Name>
        <ChannelNumber>2</ChannelNumber>
        <Name>Temperature-K</Name>
        <ChannelNumber>3</ChannelNumber>
        <Name>Pressure-inHg-absolute</Name>
      </Outputs>
    </Adapter-Simulator3>
    <Adapter-Simulator2>
      <DeviceInstanceName>Sim2</DeviceInstanceName>
      <DeviceConfiguration>
        <Channels>1</Channels>
        <IntensityMax>1</IntensityMax>
        <SimulatorMode>Random</SimulatorMode>
        <StartChannel>0</StartChannel>
        <Wavelength>1</Wavelength>
        <WavelengthEnd>120</WavelengthEnd>
        <WavelengthStartq>100</WavelengthStartq>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>100</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>101</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>102</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>103</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>104</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>105</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>106</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>107</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>108</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>109</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>110</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>111</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>112</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>113</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>114</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>115</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>116</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>117</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>118</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>119</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>120</Name>
        <ChannelNumber>2</ChannelNumber>
        <Name>Temperature-K</Name>
        <ChannelNumber>3</ChannelNumber>
        <Name>Pressure-inHg-absolute</Name>
      </Outputs>
    </Adapter-Simulator2>
    <Adapter-Counter>
      <DeviceInstanceName>Counter1</DeviceInstanceName>
      <DeviceConfiguration>
        <StartingValue>0</StartingValue>
        <IncrementBy>1</IncrementBy>
        <ResetIfPulseMissed>False</ResetIfPulseMissed>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>CounterValue</Name>
      </Outputs>
    </Adapter-Counter>
  </Instrument>
  <Connectors>
    <Connection>
      <Sink_Instrument>Simulator2</Sink_Instrument>
      <Source_Instrument>Simulator1</Source_Instrument>
    </Connection>
    <Connection>
      <Sink_Instrument>Simulator2</Sink_Instrument>
      <Source_Instrument>Counter</Source_Instrument>
    </Connection>
  </Connectors>
</Configuration>

我希望我的SSRS报告以表格格式显示xml。

到目前为止,我已尝试过以下内容。我使用了以下链接并创建了一个xmltable函数。该函数按预期提取xml但不确定如何在报告中显示。

[Shredding XML From Execution Plans

在粉碎xml后我使用以下链接创建列表并显示xml但没有运气

[https://www.youtube.com/watch?time_continue=6&v=h8EidVXasYg]

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:0)

您将无法将其转换为一个大表,因为有多个1:n嵌套数据,您将创建一个多次重复的CROSS JOIN。< / p>

以下内容向您展示了如何使用每个级别的一些示例从XML检索数据。其余的由你决定...

DECLARE @xml XML=
N'<Configuration>
  <Name>Test</Name>
  <Description />
  <CreatedOn>1/16/2017-2:59:32-PM</CreatedOn>
  <CreatedBy>admin</CreatedBy>
  <LastModifiedOn>1/16/2017-2:59:32-PM</LastModifiedOn>
  <LastModifiedBy>admin</LastModifiedBy>
  <IsConfigured>False</IsConfigured>
  <ParentId>3</ParentId>
  <VersionMajor>0</VersionMajor>
  <VersionMinor>4</VersionMinor>
  <LifecycleState>Development</LifecycleState>
  <Archived>False</Archived>
  <IsTest>False</IsTest>
  <RunMode>Timed</RunMode>
  <SelectedTimeUnit>Milliseconds</SelectedTimeUnit>
  <PulseInMs>2000</PulseInMs>
  <ClientLocation />
  <IsValid>True</IsValid>
  <Instrument>
    <Adapter-Simulator1>
      <DeviceInstanceName>Sim1</DeviceInstanceName>
      <DeviceConfiguration>
        <Channels>1</Channels>
        <IntensityMax>1</IntensityMax>
        <SimulatorMode>HiLo</SimulatorMode>
        <StartChannel>0</StartChannel>
        <Wavelength>1</Wavelength>
        <WavelengthEnd>100</WavelengthEnd>
        <WavelengthStartq>1</WavelengthStartq>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>1</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>2</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>3</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>4</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>5</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>6</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>7</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>8</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>9</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>10</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>11</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>12</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>13</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>14</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>15</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>16</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>17</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>18</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>19</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>20</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>21</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>22</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>23</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>24</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>25</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>26</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>27</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>28</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>29</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>30</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>31</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>32</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>33</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>34</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>35</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>36</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>37</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>38</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>39</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>40</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>41</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>42</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>43</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>44</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>45</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>46</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>47</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>48</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>49</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>50</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>51</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>52</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>53</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>54</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>55</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>56</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>57</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>58</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>59</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>60</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>61</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>62</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>63</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>64</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>65</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>66</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>67</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>68</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>69</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>70</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>71</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>72</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>73</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>74</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>75</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>76</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>77</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>78</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>79</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>80</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>81</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>82</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>83</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>84</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>85</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>86</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>87</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>88</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>89</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>90</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>91</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>92</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>93</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>94</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>95</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>96</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>97</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>98</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>99</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>100</Name>
        <ChannelNumber>2</ChannelNumber>
        <Name>Temperature-K</Name>
        <ChannelNumber>3</ChannelNumber>
        <Name>Pressure-inHg-absolute</Name>
      </Outputs>
    </Adapter-Simulator1>
    <Adapter-Simulator3>
      <DeviceInstanceName>Sim3</DeviceInstanceName>
      <DeviceConfiguration>
        <Channels>1</Channels>
        <IntensityMax>1</IntensityMax>
        <SimulatorMode>Random</SimulatorMode>
        <StartChannel>0</StartChannel>
        <Wavelength>1</Wavelength>
        <WavelengthEnd>140</WavelengthEnd>
        <WavelengthStartq>120</WavelengthStartq>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>120</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>121</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>122</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>123</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>124</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>125</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>126</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>127</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>128</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>129</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>130</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>131</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>132</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>133</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>134</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>135</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>136</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>137</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>138</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>139</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>140</Name>
        <ChannelNumber>2</ChannelNumber>
        <Name>Temperature-K</Name>
        <ChannelNumber>3</ChannelNumber>
        <Name>Pressure-inHg-absolute</Name>
      </Outputs>
    </Adapter-Simulator3>
    <Adapter-Simulator2>
      <DeviceInstanceName>Sim2</DeviceInstanceName>
      <DeviceConfiguration>
        <Channels>1</Channels>
        <IntensityMax>1</IntensityMax>
        <SimulatorMode>Random</SimulatorMode>
        <StartChannel>0</StartChannel>
        <Wavelength>1</Wavelength>
        <WavelengthEnd>120</WavelengthEnd>
        <WavelengthStartq>100</WavelengthStartq>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>100</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>101</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>102</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>103</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>104</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>105</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>106</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>107</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>108</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>109</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>110</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>111</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>112</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>113</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>114</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>115</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>116</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>117</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>118</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>119</Name>
        <ChannelNumber>1</ChannelNumber>
        <Name>120</Name>
        <ChannelNumber>2</ChannelNumber>
        <Name>Temperature-K</Name>
        <ChannelNumber>3</ChannelNumber>
        <Name>Pressure-inHg-absolute</Name>
      </Outputs>
    </Adapter-Simulator2>
    <Adapter-Counter>
      <DeviceInstanceName>Counter1</DeviceInstanceName>
      <DeviceConfiguration>
        <StartingValue>0</StartingValue>
        <IncrementBy>1</IncrementBy>
        <ResetIfPulseMissed>False</ResetIfPulseMissed>
      </DeviceConfiguration>
      <Outputs>
        <ChannelNumber>1</ChannelNumber>
        <Name>CounterValue</Name>
      </Outputs>
    </Adapter-Counter>
  </Instrument>
  <Connectors>
    <Connection>
      <Sink_Instrument>Simulator2</Sink_Instrument>
      <Source_Instrument>Simulator1</Source_Instrument>
    </Connection>
    <Connection>
      <Sink_Instrument>Simulator2</Sink_Instrument>
      <Source_Instrument>Counter</Source_Instrument>
    </Connection>
  </Connectors>
</Configuration>';

此查询返回配置和连接数据

SELECT conf.value(N'Name[1]',N'nvarchar(max)') AS Configuration_Name
      ,conf.value(N'CreatedOn[1]',N'nvarchar(max)') AS Configuration_CreatedOn --This should be ISO8601 otherwise a cast to DATETIME is culture dependant!
      ,conf.value(N'Archived[1]',N'bit') AS Configuration_Archived --This should be ISO8601 otherwise a cast to DATETIME is culture dependant!
      ,con.value(N'(Sink_Instrument)[1]',N'nvarchar(max)') AS Connection_Sink_Instrument
      ,con.value(N'(Source_Instrument)[1]',N'nvarchar(max)') AS Connection_Source_Instrument
FROM @xml.nodes(N'Configuration') AS A(conf)
OUTER APPLY A.conf.nodes(N'Connectors/Connection') AS B(con)

此查询返回Cofiguration,Simulator和Output数据

SELECT conf.value(N'Name[1]',N'nvarchar(max)') AS Configuration_Name
      ,conf.value(N'CreatedOn[1]',N'nvarchar(max)') AS Configuration_CreatedOn --This should be ISO8601 otherwise a cast to DATETIME is culture dependant!
      ,conf.value(N'Archived[1]',N'bit') AS Configuration_Archived --This should be ISO8601 otherwise a cast to DATETIME is culture dependant!
      ,sim.value(N'(DeviceInstanceName)[1]',N'nvarchar(max)') AS Simulator_DeviceInstanceName
      ,sim.value(N'(DeviceConfiguration/Channels)[1]',N'int') AS Simulator_DeviceConfiguration_Channels
      ,outp.value(N'local-name(.)','nvarchar(max)') AS Simulator_Output_Node
      ,outp.value(N'.','nvarchar(max)') AS Simulator_Output
FROM @xml.nodes(N'Configuration') AS A(conf)
OUTER APPLY A.conf.nodes(N'Instrument/*[substring(local-name(),1,17)="Adapter-Simulator"]') AS B(sim)
OUTER APPLY sim.nodes(N'Outputs/*') AS C(outp)

更新“All-in-one”

只是“合并”我的两个陈述!试试这个,如果你真的不关心重复。但这可能爆炸: - )

SELECT conf.value(N'Name[1]',N'nvarchar(max)') AS Configuration_Name
      ,conf.value(N'CreatedOn[1]',N'nvarchar(max)') AS Configuration_CreatedOn --This should be ISO8601 otherwise a cast to DATETIME is culture dependant!
      ,conf.value(N'Archived[1]',N'bit') AS Configuration_Archived --This should be ISO8601 otherwise a cast to DATETIME is culture dependant!
      ,con.value(N'(Sink_Instrument)[1]',N'nvarchar(max)') AS Connection_Sink_Instrument
      ,con.value(N'(Source_Instrument)[1]',N'nvarchar(max)') AS Connection_Source_Instrument
      ,sim.value(N'(DeviceInstanceName)[1]',N'nvarchar(max)') AS Simulator_DeviceInstanceName
      ,sim.value(N'(DeviceConfiguration/Channels)[1]',N'int') AS Simulator_DeviceConfiguration_Channels
      ,outp.value(N'local-name(.)','nvarchar(max)') AS Simulator_Output_Node
      ,outp.value(N'.','nvarchar(max)') AS Simulator_Output
FROM @xml.nodes(N'Configuration') AS A(conf)
OUTER APPLY A.conf.nodes(N'Connectors/Connection') AS B(con)
OUTER APPLY A.conf.nodes(N'Instrument/*[substring(local-name(),1,17)="Adapter-Simulator"]') AS C(sim)
OUTER APPLY sim.nodes(N'Outputs/*') AS D(outp)