首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server 2005 xml查询解决思路

2012-08-16 
sql server 2005 xml查询实例:title langenEveryday Italian/titletitle langenXQuery Kick S

sql server 2005 xml查询
实例:<title lang="en">Everyday Italian</title><title lang="en">XQuery Kick Start</title>
以上xml
需要取出文本 Everyday Italian XQuery Kick Start 
如果不知道标签名称的情况下,把标签都过滤掉,取出以上文本,改怎么查呢。。。。。

[解决办法]

SQL code
DECLARE @x XML SET @x='<title lang="en">Everyday Italian</title><title lang="en">XQuery Kick Start</title>'SELECT T.c.value('(.)[1]','VARCHAR(50)') AS en   from  @x.nodes('title') T(c)/*en--------------------------------------------------Everyday ItalianXQuery Kick Start(2 行受影响)*/
[解决办法]
探讨

现在的情况是不知道任何节点名称 可能是任意的xml文档

[解决办法]
SQL code
DECLARE @x XML='<title lang="en">Everyday Italian</title><title lang="en">XQuery Kick Start</title>'SELECT @x.query('/title/text()[1]')/*Everyday ItalianXQuery Kick Start*/SELECT t.c.value('.[1]','varchar(50)')FROM @x.nodes('title')T(c)/*Everyday ItalianXQuery Kick Start*/
[解决办法]
探讨

如果查询属性 lang="en" 的节点中的文本呢 过滤掉标签

[解决办法]
探讨

现在只知道属性lang=‘en’ 不知道节点信息

[解决办法]
SQL code
DECLARE @x XML SET @x='<title lang="en">Everyday Italian</title><title2 lang="en">XQuery Kick Start</title2>'SELECT T.c.value('.[1]','VARCHAR(50)') AS en   from  @x.nodes('*[@lang="en"]') T(c) 

热点排行