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

*/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章