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

时间:2016-02-01 10:40:33

标签: c# json xml json.net

我有一个带有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"?>

1 个答案:

答案 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\"}"