XML 之 与Json或String的相互转换

1、XML与String的相互转换

[1] XML 转为 String

//载入Xml文件
XmlDocument xdoc = new XmlDocument();
xdoc.Load("xml文件");

string xmlStr = xdoc.InnerXml;

[2] String 转为 XML

//载入Xml字符串
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml("xml字符串");

//保存为Xml文件
xdoc.Save("xml文件");

2、XML 与 Json 的相互转换

[1] XML 转换为 Json

using System.Xml;
using Newtonsoft.Json;  

string xml = "<xml><Name>Test class</Name><X>100</X><Y>200</Y></xml>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);  

[2] Json 转换为 XML

方法一:

string json = Newtonsoft.Json.JsonConvert.SerializeXmlNode(xml);
XmlDocument xmlDoc = Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json);
xmlDoc.Save("F:/example.xml");

方法二:

    using System.Xml;    using System.Runtime.Serialization.Json;    using System.Web.Script.Serialization;    /// <summary>
       /// json字符串转换为Xml对象
       /// XmlDictionaryReader命名空间为using System.Runtime.Serialization.Json;
       /// JavaScriptSerializer需添加System.Web.Extensions.dll引用    /// JavaScriptSerializer命名空间为System.Web.Script.Serialization;
       /// </summary>
       /// <param name="sJson"></param>
       /// <returns></returns>
       public static XmlDocument Json2Xml(string sJson)
       {
           //XmlDictionaryReader reader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(sJson), XmlDictionaryReaderQuotas.Max);
           //XmlDocument doc = new XmlDocument();
           //doc.Load(reader);  

           JavaScriptSerializer oSerializer = new JavaScriptSerializer();
           Dictionary<string, object> Dic = (Dictionary<string, object>)oSerializer.DeserializeObject(sJson);
           XmlDocument doc = new XmlDocument();
           XmlDeclaration xmlDec = doc.CreateXmlDeclaration("1.0", "UTF-8", "yes");
           doc.InsertBefore(xmlDec, doc.DocumentElement);
           XmlElement nRoot = doc.CreateElement("root");
           doc.AppendChild(nRoot);
           foreach (KeyValuePair<string, object> item in Dic)
           {
               XmlElement element = doc.CreateElement(item.Key);
               KeyValue2Xml(element, item);
               nRoot.AppendChild(element);
           }
           return doc;
       }

       private static void KeyValue2Xml(XmlElement node, KeyValuePair<string, object> Source)
       {
           object kValue = Source.Value;
           if (kValue.GetType() == typeof(Dictionary<string, object>))
           {
               foreach (KeyValuePair<string, object> item in kValue as Dictionary<string, object>)
               {
                   XmlElement element = node.OwnerDocument.CreateElement(item.Key);
                   KeyValue2Xml(element, item);
                   node.AppendChild(element);
               }
           }
           else if (kValue.GetType() == typeof(object[]))
           {
               object[] o = kValue as object[];
               for (int i = 0; i < o.Length; i++)
               {
                   XmlElement xitem = node.OwnerDocument.CreateElement("Item");
                   KeyValuePair<string, object> item = new KeyValuePair<string, object>("Item", o[i]);
                   KeyValue2Xml(xitem, item);
                   node.AppendChild(xitem);
               }           }
           else
           {
               XmlText text = node.OwnerDocument.CreateTextNode(kValue.ToString());
               node.AppendChild(text);
           }
       }  
时间: 2024-10-25 18:09:15

XML 之 与Json或String的相互转换的相关文章

Json与bean的相互转换

本文使用json-lib jar包实现Json与bean的相互转换 1.将字符串转为JSON 使用JSONObject.fromObject(str)方法即可将字符串转为JSON对象 使用JSONObject.put("attribute","value")可为JSON添加属性 如果需要转为JSON数组,只需使用JSONArray对象提供的方法即可 /** * 一些简单的转换 */ public static void transformStringTest() {

json和string 之间的相互转换

json和string 之间的相互转换 <script type="text/javascript"> //先认识一下js中json function showInfo(){ var user={ "name":"jack", //字符串类型的值 "age":18, //数字类型的值 "info":{"tel":"110","cellphone&

JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)

在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的stringify()和parse()方法. JSON.stringify(obj)将JSON转为字符串.JSON.parse(string)将字符串转为JSON格式: var a={"name":"tom","sex":"男","age":"24"}; var aToStr =

JSON的String字符串与Java的List列表对象的相互转换

在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示: var jsonStr = JSON.stringify(list); var param= {}; param.jsonStr=jsonStr; 在后台: 1.把String转换为List(str转换为list) List<T> list = new ArrayList<T>(); JSONAr

javascript xml字符串转为JSON对象

/* ### jQuery XML to JSON Plugin v1.2 - 2013-02-18 ### * http://www.fyneworks.com/ - [email protected] * Licensed under http://en.wikipedia.org/wiki/MIT_License ### Website: http://www.fyneworks.com/jquery/xml-to-json/ *//* # INSPIRED BY: http://www.

JAVA中,JSON MAP LIST的相互转换

1 JSON包含对象和数组,对应于JAVA中的JSONObject,JSONArray 2 String 转JSON对象 JSONObject.fromObject("String"); String 转JSON数组 JSONArray.fromObject("String"); 3 List 和 JSON互转 JSONObject.toBean() JSONArray.fromObject(List) JAVA中,JSON MAP LIST的相互转换,布布扣,bu

c#转换XML文件和json对象

创建.XML文件string xml = @"<?xml version=""1.0"" standalone=""no""?> <root> <person id=""1""> <name>Alan</name> <url>http://www.jb51.net</url> </pers

xml字符串转xml对象,xml对象转json对象

xml字符串转xml对象: function loadXml(str) { if (str == null) { return null; } var doc = str; try{ doc = createXMLDOM(); doc.async = false; doc.loadXML(str); }catch(e){ doc = $.parseXML(str); } return doc; } /** *xml对象转json对象 *xmlObj:xml对象 *nodename:节点路径('R

用C#将XML转换成JSON

本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来读取XML,然后直接对其中的内容进行解析,这样或许更直接一些.但本文中给出的代码旨在说明如何通过原生的C#代码来完成这一转换.除此之外,你仍然可以借用一些第三方类库或者更高级一些的.NET库对象来实施转换.我们来看看这里介绍的一些较为简单的方法,但前提是你必须拥有可支持的类库和对象以备使用. 使用J