繁体   English   中英

xml序列化编码“&”字符

[英]xml serialization encoding “&” character

我将一个对象转换为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";
}

如何避免&amp; xmlstring变量中。

<BankDetails><MemberName>B &amp; A Auto</MemberName></BankDetails>

我正在寻找这样的输出:

xmlstring = //<BankDetails><MemberName>B & A Auto</MemberName></BankDetails>
//and then
escaped = //&lt;BankDetails&gt;&lt;MemberName&gt;B &amp; A Auto&lt;/MemberName&gt;&lt;/BankDetails&gt;

工作小提琴

您可以使用Unicode等效字符,即十进制或十六进制,以及&或&。

“ B&A Auto” =>“ B&#038 A Auto”;

您可以解析您的字符串,将安培转换为它们的unicode等效项,然后对其进行转义。

你不能。 &是XML中的特殊字符,用于转义其他字符。

XML中的转义字符

'='

<=&lt;

> =&gt;

&=&amp;

“ =”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM