以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XQuery/XLink/XPointer/ 』  (http://bbs.xml.org.cn/list.asp?boardid=14)
----  XQuery 在SQL Server2005中无法打印“<>”等关键字,有什么解决办法吗?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=14&rootid=&id=37449)


--  作者:xuchun9000
--  发布时间:8/31/2006 1:38:00 AM

--  XQuery 在SQL Server2005中无法打印“<>”等关键字,有什么解决办法吗?
我用SQL 2005中的XQuery,都挺正常,就是无法打印其自身的关键字,比如“<>”,就会打印出来“&gt;” 等等,令我头疼之极
不知你是否知道该怎样解决?

如下:
declare @zz varchar(1000)
declare @x xml
set @x = '
<root>
<billID>1122</billID>
</root>'

select @x.query('
for $bi in //billID/text()
return ">"
')

运行完之后系统并不打印出“>” , 而是 &gt; , 头疼之极,我估计“>”是Xquery的系统关键字之一,可怎样消除让它正确打印出“>” ?


--  作者:xuchun9000
--  发布时间:9/5/2006 11:10:00 PM

--  
大家好,我已经找到解决方法了,如下,希望对有同样问题的朋友能有帮助:

declare @zz varchar(1000)
declare @x xml
set @x = '
<root>
<billID>1122</billID>
</root>'

select @x.query('
for $bi in //billID/text()
return ">"
').value('text()[0]','varchar(1000)')

只要用其自身的value()语句做一下强制转换就好了,否则它返回的是一种“HTML符合”的文件格式,如果你在IE浏览器中打开带有&gt;字符的文件,那么IE会翻译成> ,很是奇怪,但是anyway,我解决了



--  作者:xuchun9000
--  发布时间:9/5/2006 11:15:00 PM

--  
有一点小错误,value('text()[0]','varchar(1000)')   should be     value('text()[1]','varchar(1000)')

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
31.250ms