将包含 &#38 的 XML 值节点保存到数据库中的正确方法是什么?

问题描述

今天有人向我的 asp.net 4.8 后端应用程序发送了一个 XML,如下所示:

<person>
   <name>example1 &amp;#38 example2</name>
</person>

服务器应用程序读取节点值并将其保存在 sql db 列 dbo.Person.Name 中,无需任何解码。第一个问题:不好吗?应该怎么保存?应该先解码。

无论如何假设该值将按原样保存,应用程序的客户端部分迟早会从服务器请求数据,并且该字符串将被发送到客户端并正确显示,因为它是一个 html 编码的字符串。

我正在处理的问题是当客户端在向服务器的发布请求中返回此数据时引发的验证异常。

最简单的原因是替换/转义帖子正文中包含的“&”。

这是最好的处理方式吗?服务器和客户端之间应该如何传输数据?

解决方法

“今天有人发送了一个 XML”

回到他们身边,问他们为什么要发送如此脏的数据,并告诉他们你不准备将这些垃圾数据放入你的数据库中。

从表面上看,&amp;#38 似乎是一次完全拙劣的逃避与符号的尝试。