如何获取此 xml 中的所有值。我已经尝试了一切,但我无法让它工作。任何人都可以给我快速的答案?它应该至少返回行。
DECLARE @x XML =
'<Events>
<Event DateTimeGMT="25/10/2013 18:45:00" Branch="Soccer" Sport="Soccer" BranchID="1" League="England - Championship" LeagueID="10099" ID="5693075" IsOption="0" EventType="0" MEID="2673883">
<Participants>
<Participant1 Name="Middlesbrough" Home_Visiting="Home" />
<Participant2 Name="Doncaster" Home_Visiting="Visiting" />
</Participants>
<MoneyLine Home="1.69" Draw="3.7" Away="5" />
<Spread Home_Odds="1.885" Home_Points="-0.75" Away_Points="0.75" Away_Odds="1.962" />
<Total Points="2.75" Over="2.06" Under="1.763" />
</Event>
<Event DateTimeGMT="25/10/2013 18:45:00" Branch="Soccer" Sport="Soccer" BranchID="1" League="England - Championship" LeagueID="10099" ID="5693993" IsOption="1" EventType="200" MEID="2673883">
<Participants>
<Participant1 Name="Middlesbrough" Home_Visiting="Home" />
<Participant2 Name="Doncaster" Home_Visiting="Visiting" />
</Participants>
<Total Points="4.5" Over="5.75" Under="1.125" />
</Event>
<Event DateTimeGMT="25/10/2013 18:45:00" Branch="Soccer" BranchID="1" League="England - Championship" LeagueID="10099" QAID="4423106" EventType="38" EventName="Middlesbrough vs Doncaster">
<Participants>
<Participant Name="Odd">
<Odds TypeName="Odd/Even" OddsValue="1.909" />
</Participant>
<Participant Name="Even">
<Odds TypeName="Odd/Even" OddsValue="1.8" />
</Participant>
.
.
.
<Participant Name="0:0">
<Odds TypeName="Exact" OddsValue="1.8" />
</Participant>
</Participants>
</Event>
</Events>'
DECLARE @iDoc INT
EXECUTE sp_xml_preparedocument @iDoc OUTPUT, @x
SELECT *
FROM OPENXML(@iDoc,'/Events/Event/Participants')
WITH (
ID int '../@ID',
DateTimeGMT [varchar](100) '../@DateTimeGMT',
Branch [varchar](100) '../@Branch',
Sport [varchar](100) '../@Sport',
BranchID int '../@BranchID',
League [varchar](100) '../@League',
LeagueID int '../@LeagueID',
IsOption int '../@IsOption',
EventType int '../@EventType',
MEID int '../@MEID',
QAID int '../@QAID',
EventName [varchar](500) '../@EventName',
Home [varchar](100) '..//Participant1/@Name',
Away [varchar](100) '..//Participant2/@Name',
[1] [varchar](5) '..//MoneyLine/@Home',
[X] [varchar](5) '..//MoneyLine/@Draw',
[2] [varchar](5) '..//MoneyLine/@Away',
Spread_Home_Points float '..//Spread/@Home_Points',
Spread_Home_Odds float '..//Spread/@Home_Odds',
Spread_Away_Points float '..//Spread/@Away_Points',
Spread_Away_Odds float '..//Spread/@Away_Odds',
Total_Points float '..//Total/@Points',
Lart float '..//Total/@Over',
Posht float '..//Total/@Under',
Rubrika varchar(100) 'Participant/@Name',
Koefic varchar(100) 'Participant/Odds/@OddsValue'
)
这不会读取此节点中的所有值
Rubrika varchar(100) 'Participant/@Name',
Koefic varchar(100) 'Participant/Odds/@OddsValue'
它应该返回更多行