XML序列化成对象

这个是和ALM上传测试结果结合使用的//把xml序列化成对象以及把对象序列化成xml

using System;
using System.Data;
using System.Configuration;
using System.Web;

using System.IO;
using System.Text;
using System.Xml.Serialization;
using System.Xml;
namespace XMLUtils
{

    /// <summary>
    /// Summary description for XMLUtils
    /// </summary>
    public class XMLUtils
    {
        public XMLUtils()
        {
        }

        public static String SerializedToXML(Type ObjectType_, object ObjectInstance_)
        {
            return SerializedToXMLStringBuilder(ObjectType_, ObjectInstance_).ToString();
        }

        public static StringBuilder SerializedToXMLStringBuilder(Type ObjectType_, object ObjectInstance_)
        {
            StringBuilder sbXML = new StringBuilder();
            XmlSerializer xs = new XmlSerializer(ObjectType_);
            xs.Serialize(new StringWriter(sbXML), ObjectInstance_);

            return sbXML;
        }

        public static object Deserialized(Type ObjectType_, string SerializedText_)
        {
            XmlSerializer xs = new XmlSerializer(ObjectType_);
            object oDeserialized = xs.Deserialize(new StringReader(SerializedText_));

            return oDeserialized;
        }

        /// <summary>
        /// Serialize the object to stringbuilder.
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="targetNamespace"></param>
        /// <returns></returns>
        public static StringBuilder SerializeObject(object obj, string targetNamespace)
        {
            System.Xml.Serialization.XmlSerializer ser;
            XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
            if (string.IsNullOrEmpty(targetNamespace))
            {
                ns.Add(string.Empty, string.Empty);
            }
            else
            {
                ns.Add("ns", targetNamespace);
            }

            ser = new System.Xml.Serialization.XmlSerializer(obj.GetType());
            StringBuilder objectAsString = new StringBuilder();
            StringWriter stringWriter = new StringWriter(objectAsString);
            XmlTextWriter writer = new XmlTextWriter(stringWriter);
            writer.Formatting = Formatting.None;
            ser.Serialize(writer, obj, ns);
            return objectAsString;
        }

        /// <summary>
        /// Deserialize the stringbuilder to object.
        /// </summary>
        /// <param name="objectType"></param>
        /// <param name="serializedXML"></param>
        /// <returns></returns>
        public static object DeserializeXML(Type objectType, StringBuilder serializedXML)
        {
            System.IO.StringReader reader = new System.IO.StringReader(serializedXML.ToString());
            object deserializedObject = null;
            try
            {
                XmlSerializer xs = new XmlSerializer(objectType);
                System.Xml.XmlReader xr = System.Xml.XmlReader.Create(reader);
                deserializedObject = xs.Deserialize(xr);

            }
            catch (Exception) { }
            finally
            {
                if (reader != null)
                {
                    reader.Dispose();
                }
            }
            return deserializedObject;
        }
    }
}
时间: 2024-11-05 14:46:42

XML序列化成对象的相关文章

jquery easyui将form表单元素的值序列化成对象

function serializeObject(form){ var o={}; $.each(form.serializeArray(),function(index){ if(o[this['name'] ]){ o[this['name'] ] = o[this['name'] ] + "," + this['value']; }else{ o[this['name'] ]=this['value']; } }) return o; } 把easyui中的form表单中查询条件

C#对象序列化成XML,以及自定义标签名

C#对象序列化操作: public class XMLHelper { /// <summary> /// 对象序列化成 XML String /// </summary> public static string XmlSerialize<T>(T obj) { string xmlString = string.Empty; XmlSerializer xmlSerializer = new XmlSerializer(typeof(T)); //using (Te

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点

Spring MVC返回json视图时,如何将对象直接序列化成不带变量名做为根节点的 json 报文 问题 问题描述起来比较拗口,其实就是用Spring MVC时,如何将对象映射成 json 报文时不把对象作为json的根节点.即使用@ResponseBody的效果. 比如,默认情况下,使用ModelAndView的addObject(key,object)或者ModelMap的addAttribute(key,object)保存完Java对象,然后交给Srping的视图解析器解析成json时,

iOS网络: 把Array和Dictionaries序列化成JSON对象

你想把 Array 和 dictionary 序列化成 JSON 对象.以方便在网络中传输或者保存到磁盘中. 方案: 使用 NSJSONSerialization 这个类的 dataWithJSONObject:options:error:方法来实现. 讨论: NSJSONSerialization 这个类的 dataWithJSONObject:options:error:方法可以对数组和字典进行序列化,这些数组和字典包含的值为:NSString.NSNumber.NSArray.NSDict

Android中序列化对象到XMl 和 XML反序列化为对象

package com.example.xmloperation; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; imp

Java&amp;amp;Xml教程(十一)JAXB实现XML与Java对象转换

JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,可以帮助开发人员非常方便的將XML和Java对象进行相互转换. 本文以一个简单的样例介绍JAXB的使用.首先我们须要了解一下JAXB经常使用的API. JAXBContext类.是应用的入口.用于管理XML/Java绑定信息. Marshaller接口.将Java对象序列化为XML数据. Unmarshaller接口,将XML数据反序列化为Java对象. @XmlType,将

使用 EntityFramework后把一个对象序列化成json字符串引起循环引用的问题

先看一个T4模板生成的model实体类 1 著作权归作者所有. 2 商业转载请联系作者获得授权,非商业转载请注明出处. 3 作者:卷猫 4 链接:http://anneke.cn/ArticleInfo/Detial/15 5 来源:Anneke.cn 6 7 //------------------------------------------------------------------------------ 8 // <auto-generated> 9 // 此代码已从模板生成.

JavaScriptSerializer序列化成Json时DateTime类型数据的处理

JavaScriptSerializer在序列化时会将DateTime的数据序列化成类似\/Date(626543800000)\/这样的值,找了很多方法都不如意,最后在一个博客找到了完美的解决方法,地址:http://blog.calyptus.eu/seb/2011/12/custom-datetime-json-serialization/,通过自定义类型转换器的方式转换成想要的格式,转换器代码如下: + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1

Android初级教程:使用xml序列器

之前备份短信的时候生成xml都是手动拼写的,有一个问题:当短信里面存在</body>这样的标签的时候,最后结果就不是完整的xml文件,显然出错.但是,今天使用序列化器的方式,就能有效的解决上边遇到的问题.就看一下序列化器如何生成xml文件: 给活动定义一个布局文件,里面知识简单的加入一个按钮: <Button android:layout_width="wrap_content" android:layout_height="wrap_content&quo