有没有办法使用linq到xml生成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(" ", "");
感谢您的帮助!
答案 0 :(得分:1)
有几种方法可以实现这一目标,但最简单的方法是使用XNode.ToString
的重载,您可以在其中指定SaveOptions
:
doc.ToString(SaveOptions.DisableFormatting);