简体   繁体   English

LINQ To Xml如何在不格式化的情况下生成xml

[英]LINQ To Xml how to generate xml without formatting

Is there way to generate xml using linq to xml without any formatting (whitespaces, newlines etc.) and without saving to file, just in memory? 有没有办法使用linq to xml生成xml,而没有任何格式(空格,换行符等),也没有保存到文件中,而只是在内存中?

I am sending this xml to some api, and this is requirements. 我正在将此xml发送到某些api,这是要求。 Now i am using string.Replace(); 现在我正在使用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("  ", "");

Thanks for any help! 谢谢你的帮助!

有几种方法可以实现此目的,但最简单的方法是对XNode.ToString使用重载,您可以在其中指定SaveOptions

doc.ToString(SaveOptions.DisableFormatting);

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

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