LINQ To Xml如何生成Xml而不需要格式化

本文关键字:Xml 不需要 格式化 To LINQ 何生成 | 更新日期: 2023-09-27 18:08:45

是否有办法生成xml使用linq到xml没有任何格式(空白,换行等),而不保存到文件,只是在内存?

我将这个xml发送给一些api,这是需求。现在我用的是string.Replace();

var doc = new XDocument(
            new XDeclaration("1.0", "UTF-8", null),
            new XElement("request",
                new XAttribute("version", "1.0"),
                new XElement("m",
                    new XElement("id", credentials.id),
                    new XElement("signature"), ""),
                new XElement("data",
                    new XElement("p",
                        new XAttribute("id", ""),
                        new XElement("porp",
                            new XAttribute("name", "c"),
                            new XAttribute("value", c)),
                        new XElement("porp",
                            new XAttribute("name", "a"),
                            new XAttribute("value", a))))));

        var data = doc.Element("request").Element("data").Elements();
        string result = string.Concat(data).Trim().Replace("'r'n", "").Replace("  ", "");
        var signature = Utils.ComputeSignature(result, credentials.Password);
        doc.Element("request").Element("m").Element("signature").Value = signature;
        return doc.ToString().Trim().Replace("'r'n", "").Replace("  ", "");

谢谢你的帮助!

LINQ To Xml如何生成Xml而不需要格式化

有几种方法可以实现这一点,但最简单的是使用XNode.ToString的过载,您可以指定您的SaveOptions:

doc.ToString(SaveOptions.DisableFormatting);