XML取节点名称与节点值实例

declare @x xml

set @x='

<ROOT>

  <SM>

  <SMID>88</SMID>

  <SMCD>A5</SMCD>

  <SMNM>刘洋</SMNM>

  <NDS>

  <ND>

  <SF>3</SF>

  <NDID>88</NDID>

  <NDCD>A5</NDCD>

  <NDNM>林林</NDNM>

  <CDST>

  <tR1>1</tR1>

  <tR2>2</tR2>

  <tR3>3</tR3>

  <tR4>4</tR4>

  <tR5>5</tR5>

  <tR6>6</tR6>

  <tR7>7</tR7>

  <tR8>8</tR8>

  <tR9>9</tR9>

  <tt2>1</tt2>

  <tt130>2</tt130>

  <t132>3</t132>

  <t155>4</t155>

  </CDST>

  </ND>

  </NDS>

  </SM>

  <SM>

  <SMID>84</SMID>

  <SMCD>A6</SMCD>

  <SMNM>陈真</SMNM>

  <NDS>

  <ND>

  <SF>3</SF>

  <NDID>84</NDID>

  <NDCD>A6</NDCD>

  <NDNM>陈真</NDNM>

  <CDST>

  <tR2>9</tR2>

  <tR3>8</tR3>

  <tR4>7</tR4>

  <tR5>6</tR5>

  <tR6>5</tR6>

  <tR7>4</tR7>

  <tR8>3</tR8>

  <tR9>2</tR9>

  <t12dd>1</t12dd>

  <tt2>2</tt2>

  <tt130>3</tt130>

  <t132>4</t132>

  <t155>5</t155>

  </CDST>

  </ND>

  </NDS>

  </SM>

  <SM>

  <SMID>45</SMID>

  <SMCD>D1</SMCD>

  <SMNM>曹曹</SMNM>

  <NDS>

  <ND>

  <SF>3</SF>

  <NDID>45</NDID>

  <NDCD>D1</NDCD>

  <NDNM>曹曹</NDNM>

  <CDST>

  <tR2>1</tR2>

  </CDST>

  </ND>

  </NDS>

  </SM>

</ROOT>'

 

--按照<NDID>节点的值取出其下<CDST>节点中所有的节点名称
--如: NDID节点值为84(<NDID>84</NDID>)
 

SELECT t.x.value('local-name(.)','varchar(200)') as 节点名称,

    t.x.value('.','varchar(200)') AS 节点值

FROM @x.nodes('//ND[./NDID = "84"]/CDST/*') as t(x);

/*

节点名称 节点值

tR2    9

tR3    8

tR4    7

tR5    6

tR6    5

tR7    4

tR8    3

tR9    2

t12dd  1

tt2    2

tt130  3

t132   4

t155   5

*/

 

 源贴:http://topic.csdn.net/u/20100416/13/f16dbca1-bce3-41ef-92ed-9ad8dc66936d.html?68445

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值