【发布时间】:2019-06-29 14:34:56
【问题描述】:
我需要下载一个 XML 文件,它的数据是从存储过程中检索的。 我的问题是如果数据包含任何“&”符号,在 XML 文件中它显示为
'&'
我在我的过程中使用了 REPLACE 函数,如下所示,但是...
SELECT @V_NAME = REPLACE(@V_NAME, ' & ', ' & ');
UPDATE #TMP_RS_XML
SET OBJECT_ID=@V_ID,
FNAME=@V_FILE,
DOCUMENT=(SELECT @V_NAME as 'Description',
...
现在,输出是:
&
【问题讨论】:
-
&是&的 XML 编码,因为&是一个特殊字符。 -
至于为什么你的替换“不起作用”,你用
&替换&,而不是用&替换&。但正如朱哈尔所说,&是&的 XML 编码形式,所以你不应该删除它。 -
因此,您将
&字符替换为&。当用这种方式替换&中的&时,结果当然是&。不可能是别的。 -
您可能在 html 文档中嵌入了 XML。您需要使用 System.Net.WebUtility.HtmlDecode(string) 或 System.Net.WebUtility.HtmlEncode(string) 参见 wiki:en.wikipedia.org/wiki/…
-
在使用替换功能之前,例如:
E.R. MANAGEMENT & CO. KG被显示而不是E.R. MANAGEMENT & CO. KG。我在网上发现我们需要用&替换所有&,所以我们将在我们的XML 文档中得到&。这就是我使用这种替换的原因。
标签: sql xml sql-server-2012