简体   繁体   English

如何从字符串或xml中删除XML声明+根标记

[英]How to remove an XML declaration + root tag from string or xml

I have an XML with xml declaration + root tag , which i don't need -> my goal is convert it to JSON, without xml declaration and root tag 我有一个带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);

How can i remove the XML deceleration <?xml version="1.0" encoding="UTF-8"?> from the xml, before serialize it to JSON? 在序列化为JSON之前, <?xml version="1.0" encoding="UTF-8"?>从xml中删除XML减速<?xml version="1.0" encoding="UTF-8"?>

For removing XML declaration, you can use XElement instead of XDocument , for example : 要删除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

output : 输出:

"{\"foo\":\"bar\"}"

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

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