C# XML到JSON的转换:CDATA

C# XML到JSON的转换:CDATA,c#,.net,xml,json,json.net,C#,.net,Xml,Json,Json.net,我使用Newtonsoft.JSON将XML转换为JSON。但是,如果XML中有任何CDATA,则JSON对象是不正确的。 例如: <CUST><First_Name>Luke</First_Name> <Last_Name>Skywalker</Last_Name> <ID><![CDATA[1234]]></ID> </CUST> 但它却回来了 "CUST": { "F

我使用Newtonsoft.JSON将XML转换为JSON。但是,如果XML中有任何CDATA,则JSON对象是不正确的。 例如:

   <CUST><First_Name>Luke</First_Name> <Last_Name>Skywalker</Last_Name> <ID><![CDATA[1234]]></ID> </CUST>
但它却回来了

"CUST": {
    "First_Name": "Luke",
    "Last_Name": "Skywalker",
    "ID": {"#cdata-section":"802011252"}
  }
我的代码看起来像

var xmlDoc=new XmlDocument();
    xmlDoc.LoadXml("<XML>"+Attributes_X+"</XML>"); 
XDocument doc = XDocument.Parse(xmlDoc.OuterXml);
var cDataNodes = doc.DescendantNodes().OfType<XCData>();
  return JsonConvert.SerializeXmlNode(xmlDoc,new Newtonsoft.Json.Formatting(),true);
var xmlDoc=new XmlDocument();
LoadXml(“+Attributes_X+”);
XDocument doc=XDocument.Parse(xmlDoc.OuterXml);
var CDATA节点=doc.degenantNodes().OfType();
返回JsonConvert.SerializeXmlNode(xmlDoc,new Newtonsoft.Json.Formatting(),true);

如何消除此问题,转换前应删除或编码CDATA。我怎样才能做到这一点。欢迎您提出建议。

您使用什么代码来执行转换?一个简短但完整的例子来演示这个问题真的很有帮助。@JonSkeet我已经将它标记为C#,并用一个小片段更新了这个问题。一个简短但完整的程序比一个片段要好。(任何你需要使用
XmlDocument
而不是
XDocument
的原因,顺便说一句,LINQ到XML要好得多……而且可能也会使答案简单得多。)我之所以考虑使用XmlDocument而不是XDoc,是因为JsonConvert.SerializeXmlNode接受XmlNodeEyes,但是
jsonvert.SerializeXNode
接受
XNode
。。。
var xmlDoc=new XmlDocument();
    xmlDoc.LoadXml("<XML>"+Attributes_X+"</XML>"); 
XDocument doc = XDocument.Parse(xmlDoc.OuterXml);
var cDataNodes = doc.DescendantNodes().OfType<XCData>();
  return JsonConvert.SerializeXmlNode(xmlDoc,new Newtonsoft.Json.Formatting(),true);