【发布时间】:2019-07-31 04:10:12
【问题描述】:
在尝试将某些特殊字符转换为正确的 XML 时遇到问题。相反,它返回的是调用应用程序失败的 XML。
这是一大段代码的一部分。我必须使用 XML PATH,否则将需要重构整个过程,这超出了本工作的范围。
我尝试替换这些值,并尝试替换前后的值。我无法对后续返回的 XML 执行额外的传递
DROP TABLE IF EXISTS #MyData
GO
CREATE TABLE #MyData
(
RefId varchar(20) NOT NULL,
Company varchar(255) NOT NULL
);
GO
INSERT INTO #MyData (RefId, Company) VALUES ('SN7172', 'Goodle '+CHAR(0174));
INSERT INTO #MyData (RefId, Company) VALUES ('GW5282', 'NewtownApple '+CHAR(0169));
INSERT INTO #MyData (RefId, Company) VALUES ('ZE0018', 'Curlewky Appliances '+CHAR(0151));
INSERT INTO #MyData (RefId, Company) VALUES ('TW1037', 'Sparky Games '+CHAR(0153));
GO
SELECT (
SELECT RefId,
REPLACE(REPLACE(REPLACE(REPLACE(Company, char(0174),'®'), char(0169),'©'), char(0153),'™'), char(0151),'—') Company
FROM #MyData
FOR XML PATH('Catalog'), TYPE
)
FOR XML PATH('Catalogs'), TYPE
SQL 正在转换为 ® 而不是 ®
然而,下面的 XML 显示了正在转换的 & 符号,而不是完整的字符串。
<Catalog>
<RefId>GW5282</RefId>
<Company>Newtown & Apple &#0169;</Company>
</Catalog>
<Catalog>
<RefId>ZE0018</RefId>
<Company>Curlewky Appliances &#0151;</Company>
</Catalog>
<Catalog>
<RefId>TW1037</RefId>
<Company>Sparky Games &#0153;</Company>
</Catalog>
</Catalogs>
【问题讨论】:
标签: sql-server xml