1. 程式人生 > >xml與物件的相互轉化

xml與物件的相互轉化

    public class XmlHelper

    {
        /// <summary>
        /// 反序列化
        /// </summary>
        /// <param name="type"></param>
        /// <param name="xml"></param>
        /// <returns></returns>
        public static object Deserialize(Type type, string xml)
        {
            try
            {
                using (StringReader sr = new StringReader(xml))
                {
                    XmlSerializer xmldes = new XmlSerializer(type);
                    return xmldes.Deserialize(sr);
                }
            }
            catch (Exception e)
            {


                return null;
            }
        }
        public static object Deserialize(Type type, Stream stream)
        {
            XmlSerializer xmldes = new XmlSerializer(type);
            return xmldes.Deserialize(stream);
        }


        /// <summary>
        /// 序列化
        /// </summary>
        /// <param name="type">型別</param>
        /// <param name="obj">物件</param>
        /// <returns></returns>
        public static string Serializer(Type type, object obj)
        {
            MemoryStream Stream = new MemoryStream();
            XmlSerializer xml = new XmlSerializer(type);
            try
            {
                //序列化物件
                xml.Serialize(Stream, obj);
            }
            catch (InvalidOperationException)
            {
                throw;
            }
            Stream.Position = 0;
            StreamReader sr = new StreamReader(Stream);
            string str = sr.ReadToEnd();


            sr.Dispose();
            Stream.Dispose();


            return str;
        }
    }

呼叫方式:

public class CLASS1

{

    public object obj

    { get; set;}

}

序列化:

CLASS1 c1 = new CLASS1()

{

    obj = "Hello"

};

string strXml = XmlHelper.Serializer(typeof(CLASS1), c1);

反序列化:

c1 = XmlHelper.Deserialize(typeof(CLASS1), strXml) as CLASS1;

注意反序列化的時候要用序列化的xml字首

比如你要反序列化一段xml字串,請先建立其實體類時先序列化一次,取出字首(還有它的關閉標籤!!)然後再把自己要反序列化的字串和字首替換組合一下

string xmlhead = "<?xml version=\"1.0\"?>" +
                "<CLASS1 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
                "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">{0}</CLASS1>";

string strXml = string.Format(xmlHead, "你自己的strXml,記得去掉頭部然後再組合");

: -)

相關推薦

使用JAXB進行JavaBean物件XML檔案的相互轉化

思想:父標籤相當於一個物件,子標籤相當於物件的屬性,然後迴圈巢狀。 JAXBContext類,是應用的入口,用於管理XML/Java繫結資訊。 Marshaller介面,將Java物件序列化為XML資料。 Unmarshaller介面,將XML資料反序列化為Java

xml物件相互轉化

    public class XmlHelper     {         /// <summary>         /// 反序列化         /// </summary>         /// <param name="ty

XStream xml物件相互轉化

 jar包的依賴:   * 核心JAR包:xstream-1.4.7.jar   * 必須依賴包:xpp3_min-1.1.4c  1.將物件轉化為xml     1.1編寫類:     class Person implements Serializable {      

資料型別:物件陣列相互轉化

1、將SimpleXMLElement Object陣列轉化為普通陣列 如格式為: $data = json_decode(json_encode($response),TRUE); 結果

字串、陣列、map集合、集合陣列、Java物件JSON相互轉化

一、需要匯入的jar包 二、相互轉化1.字串與JSON相互轉化        //字串轉化為JSON,取JSON內元素        String jsonStr="{'name':'Jeffrey'}";        JSONObject jo=JSONObject.fr

JAVA 實現XMLJSON 相互轉換

tst throws light getc con parent urn In 工作 原文地址https://blog.csdn.net/congcong68/article/details/39029907 在工作中,經常碰到XML轉為JSON或者JSON轉為XML,在這

js-字串陣列相互轉化及使用小技巧

1)陣列轉換成字串(型別的轉換,資料內容不改變) 如arr = [0x12,0x92,0x89];     str = arr.join(");          

LeetCode(12&13)—— 整數羅馬數字相互轉化

說明 如果你在寫這個程式的時候,發現你在IDE上執行結果完全正確,而在網站上總是Wrong Answer,恭喜你,這將讓你倍漲經驗(起碼我找了很久才發現這個問題) 字典是存放順序與你輸入的順序是不一樣的!!!迭代讀取的時候一定要小心!!!!! 下面講下經過。。。 描述

Java stringint相互轉化

String 轉 int public class Main { public static void main(String []args) { //需注意的是,若是出現轉換中存在非數字字元,可能

MFC中CString char*相互轉化

CString->char* CString str = _T("1234"); USES_CONVERSION; char* p = T2A(str.GetBuffer(0)); str.ReleaseBuffer(); char*->CString ch

javascript json字串物件相互轉換

 在實際專案中,經常遇到字元格式的問題,記下來以便日後方便檢視。用到兩個函式:JSON.stringify() 和 JSON.parse()。  使用ajax向後臺請求資料,後臺給前端返回資料,明明後端指令碼寫的是json函式處理後的json格式,但是前端接收資料時,卻時而是

轉:CTimeCString相互轉化

轉自:http://blog.163.com/[email protected]/blog/static/459230342009230115919910/一.CTime轉化為CStringCTime  tmSCan = CTime::GetCurrentTime();CString s

int_64 字串相互轉化

int main() {        time_t cur_time = time(0);        cout << "cur_time is:" << cur_time << endl;        char ct[32];  

java中byteint相互轉化的原理

  int i = 0;   i += ((b[0] & 0xff) << 24);   i += ((b[1] & 0xff) << 16);   i += ((b[2] & 0xff) << 8);   i += ((b[3] & 0x

JAXB實現xml物件互相轉換

不需要引入任何外部jar包,JAXB自jdk1.5就已被整合,jdk1.7已升級為JAXB2。 1.xml報文 <?xml version="1.0" encoding="UTF-8"?> <root xmlns="urn:iso:std:iso:20022:tec

C++ 整數字串相互轉化

一. 整數轉化為字串 方法1:用itoa(實戰時常用) #include <iostream> #include <stdlib.h> using namespace st

字串數字相互轉化

一.C中的方法1.  c中字串轉換成數字:一些庫函式標頭檔案:#include<stdlib.h>atof(),atoi(),atol(),atoll(),strtod(),strtol(),strtoul(),strtof(),strtoll(),strtoul

java_時間戳Date_相互轉化

  時間戳是指檔案屬性裡的建立、修改、訪問時間。  數字時間戳技術是數字簽名技術一種變種的應用。在電子商務交易檔案中,時間是十分重要的資訊。在書面合同中,檔案簽署的日期和簽名一樣均是十分重要的防止檔案被偽造和篡改的關鍵性內容。數字時間戳服務(DTS:digital time stamp service)

jsonstring相互轉化

1. 在js和小程式中都將json格式轉化為物件: var string = '{"name":"frank", "age":29, "birthday":"1978-1-1"}';var obj=

char[]string相互轉化

1、char[] 轉化 string char buffer[20]="hello!"; string str(buffer); cout<<str; 2、 string 轉化char[] string str="hello!"; char buffer[20]