SQL Server 2005 XML 操作总结(五)元素(节点)操作——修改、删除、移动、遍历操作
2011-03-04 17:55
771 查看
========修改操作====== --将category="WEB"的第一个book节点的year值改为2000 set @data.modify('replace value of (/bookstore/book[@category="WEB"]/year/text())[1] with "2000"') /*output: <book category="WEB"> <title lang="cn">Learning XML</title> <author>Erik T. Ray</author> <year>2000</year> <price>39.95</price> </book> */ --替换第一个book节点的author的内容为“替换内容” set @data.modify('replace value of(/bookstore/book[1]/author[1]/text())[1] with ("替换内容")') /*output: <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>替换内容</author> <year>2005</year> <price>30.00</price> </book>*/
========删除操作======== --删除title的@lang="en"的所有book节点 set @data.modify('delete /bookstore/book[./title[@lang="en"]]') /*output: <bookstore> <book> <title lang="jp">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="cn">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> */ --删除第一个book节点的author的内容 set @data.modify('delete /bookstore[1]/book[1]/author[1]/text()') /*output: <book category="COOKING"> <title lang="en">Everyday Italian</title> <author /> <year>2005</year> <price>30.00</price> </book> */ ========移动操作========= --title="Harry Potter"的book节点在同级中上移一层 set @data.modify('insert (/bookstore/book[title="Harry Potter"]) before (/bookstore/book[. << (/bookstore/book[title="Harry Potter"])[1]]) [last()]') SET @data.modify ('delete /bookstore/book[title="Harry Potter"] [. is (/bookstore/book[title="Harry Potter"])[last()]]') /*output: <book category="CHILDREN"> ...... </book> <book category="COOKING"> ...... </book> <book category="WEB"> ...... </book> <book category="WEB"> ...... </book>*/ --title="Harry Potter"的book节点在同级中下移一层 set @data.modify('insert (/bookstore/book[title="Harry Potter"]) before (/bookstore/book[. >> (/bookstore/book[title="Harry Potter"])[1]]) [last()]') SET @data.modify ('delete /bookstore/book[title="Harry Potter"][1] ') /*output: <book category="COOKING"> ...... </book> <book category="WEB"> ...... </book> <book category="CHILDREN"> ...... </book> <book category="WEB"> ...... </book>*/ --title="Harry Potter"的book节点移到category为COOKING的book节点前 set @data.modify('insert (/bookstore/book[title="Harry Potter"]) before (/bookstore/book[@category="COOKING"])[1]') SET @data.modify ('delete /bookstore/book[title="Harry Potter"] [2]') /*output: <book category="CHILDREN"> ...... </book> <book category="COOKING"> ...... </book> <book category="WEB"> ...... </book> <book category="WEB"> ...... </book>*/ --title="Harry Potter"的book节点移到categroy为WEB的第一个book节点后 set @data.modify('insert (/bookstore/book[title="Harry Potter"]) after (/bookstore/book[@category="WEB"])[1] ') SET @data.modify ('delete /bookstore/book[title="Harry Potter"][1] ') /*output: <book category="COOKING"> ...... </book> <book category="WEB"> ...... </book> <book category="CHILDREN"> ...... </book> <book category="WEB"> ...... </book>*/
========循环遍历所有元素========= --循环所有book节点 DECLARE @cnt INT, @totCnt INT, @child XML -- counter variables SELECT @cnt = 1, @totCnt = @data.value('count(/bookstore/book)','INT') -- loop WHILE @cnt <= @totCnt BEGIN SELECT @child = @data.query('/bookstore/book[position()=sql:variable("@cnt")]') PRINT 'Processing Child Element: ' + CAST(@cnt AS VARCHAR) PRINT 'Child element: ' + CAST(@child AS VARCHAR(max)) PRINT '' -- incremet the counter variable SELECT @cnt = @cnt + 1 END /*output Processing Child Element: 1 Child element: <book category="COOKING">......</book> Processing Child Element: 2 Child element: <book><title lang="jp">......</book> Processing Child Element: 3 Child element: <book category="WEB">......</book> Processing Child Element: 4 Child element: <book category="WEB">......</book>
相关文章推荐
- SQL Server 2005 XML 操作总结(五)元素(节点)操作——修改、删除、移
- SQL Server 2005 XML 操作总结(四)元素(节点)操作——插入操作
- SQL Server 2005 XML 操作总结(三)元素(节点)操作——查询操作
- SQL Server 2005 XML 操作总结(八)属性操作——删除、遍历操作
- SQL Server 2005 XML 操作总结(四)元素(节点)操作——插入操作
- SQL Server 2005 XML 操作总结(三)元素(节点)操作——查询操作
- 简单的XML文件操作(xml文件生成,节点追加、遍历、修改、删除)
- SQL Server 2005 XML 操作总结(七)属性操作——插入、修改操作
- SQL Server 2005 XML 操作总结(七)属性操作——插入、修改操作
- tinyxml使用:创建XML,遍历打印xml文件 select操作,获取单个节点值,删除节点操作,修改节点操作,增加节点操作
- SQL Server 2005 XML 操作总结(八)属性操作——删除、遍历操作
- SQL Server 2005 XML 操作总结(二)示例
- C# 生成 添加 修改 删除 XML节点操作
- 1 详解PHP使用DOMDocument类遍历、增加、修改、删除XML节点操作
- 详解SimpleXML添加_修改_删除_遍历XML节点属性
- Asp.net中C#增加删除查找与修改xml文件元素节点
- SQL Server 2005 XML 操作总结(六)属性操作——查询操作
- PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
- 详解SimpleXML添加_修改_删除_遍历XML节点属性
- javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)