我有一个带有xml声明+ root标签的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);
如何在将xml序列化为JSON之前从xml中删除XML减速<?xml version="1.0" encoding="UTF-8"?>
?
答案 0 :(得分: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);
<强> dotnetfiddle demo
强>
输出
"{\"foo\":\"bar\"}"