as
(
select 1 as tag,null as parent,N'衣服' as [clothes!1!category],null as [subcategory!2!name!element],null as [subcategory!2!name2!xml]
union all
select 2,1,null,N'女装',N'男装'
)
select * from TestXmlExplicit for xml explicit
结果:
男装
上面可以看到女装部分被转义,男装部分没有。
指定CDATA
with TestXmlExplicitas
(
select 1 as tag,null as parent,N'衣服' as [clothes!1!category],null as [subcategory!2!name!cdata]
union all
select 2,1,null,N'女装'
)
select * from TestXmlExplicit for xml explicit
结果:
指定XMLTEXT
with TestXmlExplicitas
(
select 1 as tag,null as parent,N'衣服' as [clothes!1!category],null as [subcategory!2!NAME],null as [subcategory!2!!XMLTEXT]
union all
select 2,1,null,N'女装',N'
)
select * from TestXmlExplicit for xml explicit
结果:
因为对于红色字体 列没有指定 AttributeName,而指定了xmltext 指令,所以 元素中的属性被追加到包含它的
因为
as
(
select 1 as tag,null as parent,N'衣服' as [clothes!1!category],null as [subcategory!2!NAME],null as [subcategory!2!!XMLTEXT]
union all
select 2,1,null,N'女装',N'
)
select * from TestXmlExplicit for xml explicit
XMLTEXT列值包含了子元素name, 因此当前元素追加到
再看: with TestXmlExplicit
as
(
select 1 as tag,null as parent,N'衣服' as [clothes!1!category],null as [subcategory!2!NAME],null as [subcategory!2!subname!XMLTEXT]
union all
select 2,1,null,N'女装',N'
)
select * from TestXmlExplicit for xml explicit
如果为XMLTEXT指定AttributeName(如subname),则
总结
以上对指定EXPLICIT的XML查询就介绍完了,下一篇文章将继续用实例介绍SQL SERVER中的XML查询:指定PATH查询。SQL SERVER中XML查询:FOR XML指定RAWSQL SERVER中XML查询:FOR XML指定AUTO
SQL SERVER中XML查询:FOR XML指定EXPLICIT
SQL SERVER中XML查询:FOR XML指定PATH关于XML类型,请参考:http://blog.csdn.net/leewhoee/article/details/8571286关于XML索引,请参考:http://blog.csdn.net/leewhoee/article/details/8579743