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

原帖:http://blog.csdn.net/htl258/archive/2010/04/16/5493691.aspx

 

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

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值