zoukankan      html  css  js  c++  java
  • XML

      
    declare @xmlDoc xml 
    set @xmlDoc=' 
    <people> 
    <star id="001"> 
    <name>周杰伦</name> 
    <job >歌手</job > 
    <age>50</age> 
    </star> 
    <star id="002"> 
    <name>周星驰</name> 
    <job >导演</job > 
    <age>45</age> 
    </star> 
    <star id="003"> 
    <name>成龙</name> 
    <job >演员</job > 
    <age>44</age> 
    </star> 
    <star id="004"> 
    <name mark="明天开演唱会">刘德华</name> 
    <name newmark="全球性的">刘德华</name> 
    <job >歌手</job > 
    <age>49</age> 
    </star> 
    </people> 

    --修改属性 
    --set @xmlDoc.modify('replace value of (people/star[@id="004"]/name/@mark)[2] with "修改测试"') 
    /* 
    <people> 
      <star id="001"> 
        <name>周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name newmark="全球性的">刘德华</name> 
        <job>歌手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
    --删除属性 
    --set @xmlDoc.modify('delete people/star[@id="004"]/name[2]/@newmark') 
    /* 
    <people> 
      <star id="001"> 
        <name>周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name>刘德华</name> 
        <job>歌手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
     
    --插入属性 
    --set @xmlDoc.modify('insert attribute 插入{"这里是插入"} into (/people/star[@id=0001]/name)[1]') 
    /* 
    <people> 
      <star id="001"> 
        <name 插入="这里是插入">周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name newmark="全球性的">刘德华</name> 
        <job>歌手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
     
    --查看属性 
    --select @xmlDoc.value('(/people/star/name/@mark)[1]', 'nvarchar(max)') 
     
    /* 
    明天开演唱会 
    */ 
     
     
    --删除节点 
    --set @xmlDoc.modify('delete /people/star[@id=0004]') 
     
    /* 
    <people> 
      <star id="001"> 
        <name>周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
    </people>  
    */ 
     
    --修改节点 
    --set @xmlDoc.modify('replace value of (/people/star[1]/job/text())[1] with "耕田"') 
    /* 
    <people> 
      <star id="001"> 
        <name>周杰伦</name> 
        <job>耕田</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name newmark="全球性的">刘德华</name> 
        <job>歌手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
    --set @xmlDoc.modify('replace value of (/people/star[@id=004]/job/text())[1] with "杀手"') 
    /* 
    <people> 
      <star id="001"> 
        <name>周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name newmark="全球性的">刘德华</name> 
        <job>杀手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
    --set @xmlDoc.modify('replace value of (/people/star/@id)[1] with  3.14159265') 
    /* 
    <people> 
      <star id="3.14159265"> 
        <name>周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name newmark="全球性的">刘德华</name> 
        <job>歌手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
    --插入节点  
    --set @xmlDoc.modify('insert  <star id="4564564"> <name>麦克</name><job>演员</job><age>44</age></star> before (/people/star)[4]') 
    /* 
    <people> 
      <star id="001"> 
        <name>周杰伦</name> 
        <job>歌手</job> 
        <age>50</age> 
      </star> 
      <star id="002"> 
        <name>周星驰</name> 
        <job>导演</job> 
        <age>45</age> 
      </star> 
      <star id="003"> 
        <name>成龙</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="4564564"> 
        <name>麦克</name> 
        <job>演员</job> 
        <age>44</age> 
      </star> 
      <star id="004"> 
        <name mark="明天开演唱会">刘德华</name> 
        <name newmark="全球性的">刘德华</name> 
        <job>歌手</job> 
        <age>49</age> 
      </star> 
    </people> 
    */ 
     
    --查找 
    --找到周杰伦(第一个name) 
    --select @xmlDoc.value('(/people/star/name)[1]', 'nvarchar(200)') 
    /* 
    周杰伦 
    */ 
     
     
    --找到周星驰的所有(一行显示,周星驰在位置第二) 
    --select @xmlDoc.value('(/people/star)[2]', 'nvarchar(60)') 
    /* 
    周星驰导演45 
    */ 
     
    --列出全部 
    --select @xmlDoc.value('(/people)[1]', 'nvarchar(60)') 
    /* 
    周杰伦歌手50周星驰导演45成龙演员44刘德华刘德华歌手49 
    */ 
     
    --找到第二个name  
    --select @xmlDoc.value('(/people/star/name)[2]', 'nvarchar(60)') 
    /* 
    周星驰 
    */ 
     
    --查看第二个ID  
    --select @xmlDoc.value('(/people/star/@id)[2]', 'nvarchar(max)') 
    /* 
    002 
    */ 
     
     
    --使用count 函数 
    SELECT CAST( CAST (@xmlDoc.query('count(/people/star) ') AS VARCHAR(20)) AS int)AS count  
     
     
     
  • 相关阅读:
    linux top详解
    软件人才必须具备的素质
    合格程序员每天每周每月每年应该做的事
    正则匹配任意字符(包括换行)
    软件测试方案
    LInux进程间的通信方式有哪儿些?
    三网融合
    php路径问题
    xp 安装SATA AHCI驱动
    进程与线程的区别
  • 原文地址:https://www.cnblogs.com/qanholas/p/1865344.html
Copyright © 2011-2022 走看看