Duf*_*ffy 30 xml sql sql-server-2005
是否有任何技巧可以阻止SQL Server授权像&,<和>这样的字符?我正在尝试在我的XML文件中输出一个URL,但SQL想要用' &'' 替换任何'&'
请执行以下查询:
SELECT 'http://foosite.com/' + RTRIM(li.imageStore)
+ '/ImageStore.dll?id=' + RTRIM(li.imageID)
+ '&raw=1&rev=' + RTRIM(li.imageVersion) AS imageUrl
FROM ListingImages li
FOR XML PATH ('image'), ROOT ('images'), TYPE
Run Code Online (Sandbox Code Playgroud)
我得到的输出是这样的(&s被授权):
<images>
<image>
<imageUrl>http://foosite.com/pics4/ImageStore.dll?id=7E92BA08829F6847&raw=1&rev=0</imageUrl>
</image>
</images>
Run Code Online (Sandbox Code Playgroud)
我想要的是这个(&s没有权利):
<images>
<image>
<imageUrl>http://foosite.com/pics4/ImageStore.dll?id=7E92BA08829F6847&raw=1&rev=0</imageUrl>
</image>
</images>
Run Code Online (Sandbox Code Playgroud)
如何防止SQL服务器将'&'赋值为' &'?
小智 56
在某些情况下,某人可能不需要格式良好的XML - 我(也许是原始海报)遇到的是使用For XML Path技术通过递归查询返回单个"子"项的字段列表.有关此技术的更多信息(特别是在"黑盒XML方法"部分中): 在Transact-SQL中连接行值
对于我的情况,看到'H&E'(一种病态染色)转变为'格式良好的XML'真的令人失望.幸运的是,我找到了一个解决方案...以下页面帮助我相对容易地解决了这个问题,并且没有重新设计我的递归查询或在演示级别添加额外的解析(对于这个以及我孩子的其他/未来情况) -rows数据字段包含保留的XML字符):使用FOR XML PATH处理特殊字符
编辑:参考博客文章下面的代码.
select
stuff(
(select ', <' + name + '>'
from sys.databases
where database_id > 4
order by name
for xml path(''), root('MyString'), type
).value('/MyString[1]','varchar(max)')
, 1, 2, '') as namelist;
Run Code Online (Sandbox Code Playgroud)
尝试这个....
select
stuff(
(select ', <' + name + '>'
from sys.databases
where database_id > 4
order by name
for xml path(''), root('MyString'), type
).value('/MyString[1]','varchar(max)')
, 1, 2, '') as namelist;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34386 次 |
| 最近记录: |