/r/n或新行转换为
(十六进制)代替
(十进制)在Windows生产环境中。
相同的代码将/r/n转换为
(十进制)在本地环境中需要/期望的。
C#代码:
XElement xelm = *******; //Contains xml text with /r/n
XDocument xdoc = new XDocument();
xdoc.add(xelm);
using(var strWriter = new StreamWriter(path, false, new UTF8Encoding(false)))
{
xdoc.Save(strWriter);
}我尝试将包含/r/n的文本替换为
.Replace("\r\n", " ");,但是它在生产服务器和十六进制格式的保存中都不成功。
请任何人提出一种解决方案,以便代码以十进制格式保存数据(
)在整个环境中?
发布于 2022-12-01 19:08:53
这两种方法都同样有效,并且都将被任何XML解析器所接受,这就是为什么大多数XML序列化程序没有给您任何控制权的原因。(他们倾向于假设XML将使用真正的XML解析器读取,尽管我们从这个站点了解到很多人试图“手工”处理XML,结果通常很糟糕)。
Saxon序列化者免责声明:我公司的产品是我所知道的为数不多的允许您选择的产品之一(有一个名为saxon:character-representation的供应商序列化属性。如果你真的需要这个级别的控制,你可以使用它进行后期处理。
https://stackoverflow.com/questions/74644801
复制相似问题