如何在SQL Server上用XML编码

时间:2015-04-29 12:54:58

标签: sql-server xml tsql

我按如下方式生成XML:

SET @xml = (
        SELECT 
                PersonalMessage AS [Personal_Message]
        FROM #TemporaryDB
        FOR XML PATH ('Order'), ROOT ('Orders'), ELEMENTS
        );

接下来我添加编码信息:

SELECT N'<?xml version="1.0" encoding="utf-8"?>' + Convert(nvarchar(max), @XML) 

当我用bcp保存我的XML时,我得到类似的结果:

<?xml version="1.0" encoding="utf-8"?>
<Orders><Order>
<Personal_Message>Liebe X1 und X2,
"Wir wuenschten wir koennten heute mit euch zusammen sitzen. Das holen wir bald wieder nach."
Eure &amp; Ina </Personal_Message></Order></Orders>

但我想要这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<Orders><Order>
<Personal_Message>Liebe X1 und X2,&#13;&#13; &quot;Wir wuenschten wir koennten heute mit euch zusammen sitzen. Das holen wir bald wieder nach.&quot; &#13;&#13;Eure &amp; Ina </Personal_Message></Order></Orders>

所以我想将C/R更改为&#13;,例如"更改为&quot;

请告诉我。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可能需要替换它

SET @xml = (
        SELECT 
                Replace(Replace(Replace(PersonalMessage,char(13),'&#13;'),char(10),''),'"','&quot;') AS [Personal_Message]
        FROM #TemporaryDB
        FOR XML PATH ('Order'), ROOT ('Orders'), ELEMENTS
        );