c# - xml序列化编码“&”字符
问题描述
我将一个对象转换为xml
字符串,然后转换为转义字符串。
public class Program
{
public static void Main(string[] args)
{
BankDetails details = new BankDetails();
var xmlstring = ToXmlString(details);
var escaped = SecurityElement.Escape(xmlstring);
}
private static string ToXmlString<T>(T input)
{
XmlSerializer xsSubmit = new XmlSerializer(typeof(T));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
var xml = "";
ns.Add("", "");
using (var sww = new StringWriter())
{
using (XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings()
{
OmitXmlDeclaration = true
}))
{
xsSubmit.Serialize(writer, input, ns);
xml = sww.ToString();
}
}
return xml;
}
}
public class BankDetails
{
public string MemberName = "B & A Auto";
}
我怎样才能避免进入&
变量xmlstring
。
<BankDetails><MemberName>B & A Auto</MemberName></BankDetails>
我正在寻找这样的输出:
xmlstring = //<BankDetails><MemberName>B & A Auto</MemberName></BankDetails>
//and then
escaped = //<BankDetails><MemberName>B & A Auto</MemberName></BankDetails>
解决方案
您可以使用 Unicode 等效字符,即十进制或十六进制、& 或 & 代替。
"B & A 自动" => "B & A 自动";
您可以解析您的字符串,将放大器转换为它们的 unicode 等效项,然后转义它们。
推荐阅读
- android-studio - Android 线性布局形状问题
- javascript - react.js 在值 = 条件时执行自动提交表单
- ios - 如何在 iOS 上的 MapKit 中仅保留当前注释标记(swift)?
- libgdx - LibGDX 像素图方法不存在
- javascript - 如何将数组的内容显示为列表?
- javascript - 如何从 Redux 的数组中只删除一个元素?目前不为我工作
- node.js - GSI 与 DynamoDB.DocumentElement 和 Node.JS
- javascript - 如何使用模块和 Node.js 从 html 中获取 js 函数?
- apache-kafka - 在 KSQLDB 中插入具有嵌套结构的数组
- typescript - 广度优先搜索实现陷入无限循环