C# XML到JSON的转换:CDATA
我使用Newtonsoft.JSON将XML转换为JSON。但是,如果XML中有任何CDATA,则JSON对象是不正确的。 例如: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
<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);