如何从string或xml中删除XML声明+根标记

Era*_*eir 0 c# xml json json.net

我有一个XML与xml声明+根标签,我不需要 - >我的目标是将其转换为JSON,没有xml声明和根标签

var xml = XDocument.Parse(renderedOutput);
var xmlWithoutRoot = JsonConvert.SerializeXNode(xml, Newtonsoft.Json.Formatting.None, true);
// convert XML to JSON
var newJson = Newtonsoft.Json.JsonConvert.SerializeObject(xmlWithoutRoot);
Run Code Online (Sandbox Code Playgroud)

<?xml version="1.0" encoding="UTF-8"?>在将其序列化为JSON之前,如何从xml中删除XML减速度?

har*_*r07 6

要删除XML声明,您可以使用XElement代替XDocument,例如:

var renderedOutput = @"<?xml version=""1.0"" encoding=""utf-8"" ?>
  <root>
   <foo>bar</foo>
 </root>";
var xml = XElement.Parse(renderedOutput);
var xmlWithoutRoot = JsonConvert.SerializeXNode(xml, Newtonsoft.Json.Formatting.None, true);
// convert XML to JSON
var newJson = JsonConvert.SerializeObject(xmlWithoutRoot);
Console.WriteLine(newJson);
Run Code Online (Sandbox Code Playgroud)

dotnetfiddle demo

输出:

"{\"foo\":\"bar\"}"
Run Code Online (Sandbox Code Playgroud)