编码 xml 并保存到 SQL 服务器
Encoding xml and saving to SQL Server
有一个 Web 应用程序可以让您粘贴文本并将其保存到数据库。
文本有 €(欧元货币)符号,一旦它到达数据库,它在解析 SQL 中的 XML 时崩溃。原因是无效字符。
我通过使用 C# 在 Web API 中将 € 替换为 €
解决了这个问题。现在 XML 包含 €
并且它被解析为 SQL。我查看数据库中保存的行,它显示 €。太棒了!
我返回 Web 应用程序并调出保存的文本。我希望看到“€52.9mm”,但我看到的却是“52.9mm”。
我按 F12 键,刷新并看到它确实检索到存储在数据库中的“€52.9mm”。但是 UI 显示“52.9mm”。
对于踢球,我将数据库中的值更改为 € 52.9mm
。 UI 的刷新现在显示“€52.9mm”。
将数据库中的文本保存为 € 52.9mm
是否可行?
如果可行,我如何才能将其保存为 XML 中的这种格式?但在它被 SQL 解析后,它被保存为 €52.9mm。
有没有更好的解决方案?
最好的方法是使用 CDATA
将 HTML 包裹在 XML 标签元素中。那么你不需要担心转义或转换非xml安全字符。
现在您还没有显示有关构建此 xml 文件的任何详细信息,但让我们采用标准 XElement。要将内容保存为 CDATA
,您只需编写..
xDocument.Add(new XElement("MyHtml", new XCData("<p>My HTML Content</p>"));
CDATA
CDATA sections may occur anywhere character data may occur; they are
used to escape blocks of text containing characters which would
otherwise be recognized as markup. CDATA sections begin with the
string <![CDATA[
and end with the string ]]>
有一个 Web 应用程序可以让您粘贴文本并将其保存到数据库。
文本有 €(欧元货币)符号,一旦它到达数据库,它在解析 SQL 中的 XML 时崩溃。原因是无效字符。
我通过使用 C# 在 Web API 中将 € 替换为 €
解决了这个问题。现在 XML 包含 €
并且它被解析为 SQL。我查看数据库中保存的行,它显示 €。太棒了!
我返回 Web 应用程序并调出保存的文本。我希望看到“€52.9mm”,但我看到的却是“52.9mm”。
我按 F12 键,刷新并看到它确实检索到存储在数据库中的“€52.9mm”。但是 UI 显示“52.9mm”。
对于踢球,我将数据库中的值更改为 € 52.9mm
。 UI 的刷新现在显示“€52.9mm”。
将数据库中的文本保存为 € 52.9mm
是否可行?
如果可行,我如何才能将其保存为 XML 中的这种格式?但在它被 SQL 解析后,它被保存为 €52.9mm。
有没有更好的解决方案?
最好的方法是使用 CDATA
将 HTML 包裹在 XML 标签元素中。那么你不需要担心转义或转换非xml安全字符。
现在您还没有显示有关构建此 xml 文件的任何详细信息,但让我们采用标准 XElement。要将内容保存为 CDATA
,您只需编写..
xDocument.Add(new XElement("MyHtml", new XCData("<p>My HTML Content</p>"));
CDATA
CDATA sections may occur anywhere character data may occur; they are used to escape blocks of text containing characters which would otherwise be recognized as markup. CDATA sections begin with the string
<![CDATA[
and end with the string]]>