xml序列化測試和總結

2021-06-28 12:15:19 字數 3013 閱讀 4351

using system.xml;

using system.xml.serialization;

public partial class writexmlstr : system.web.ui.page

;xmlclass outxml3 = new xmlclass() ;

//正常的輸出

strxml = xmloperation.xmlserialize(outxml3, encoding.utf8);

response.write(strxml);

//測試單個list<>和繼承自list<>的類的不同輸出

listlist1 = new list;

strxml = xmloperation.xmlserialize(list1, encoding.utf8);

response.write(strxml);

listxml list2 = new listxml() ;

strxml = xmloperation.xmlserialize(list2, encoding.utf8);

response.write(strxml);

//測試string和int型別的不同,還有陣列的輸出

xmlclass listclass = new xmlclass() ;

strxml = xmloperation.xmlserialize(listclass, encoding.utf8);

response.write(strxml);

//測試具有派生類的輸出

fulei fuclass = new zilei1() ;

strxml = xmloperation.xmlserialize(fuclass, encoding.utf8);

response.write(strxml);

//測試具有派生類的陣列的輸出

fulei fuclass1 = new zilei2() ;

fulei fuclass2 = new zilei2() ;

fulei fuclass3 = new zilei2() ;

fulei fuclass4 = new fulei() ;

fulei listfu = new fulei() };

strxml = xmloperation.xmlserialize(listfu, encoding.utf8);

response.write(strxml);}}

//當單獨對陣列進行序列化的時候最好為該陣列建立乙個新的類

[xmltype("listname")]

public class listxml : list

[xmltype("xml")]

public class xmlclass

//當型別為int時總是會生成該屬性,若不賦值則值預設0

[xmlattribute("attributenameint")]

public int intattribute

//當值為"'時會生成節點的簡寫形式,其他同屬性

[xmlelement("elementnamestr")]

public string strelement

//同屬性

[xmlelement("elementnameint")]

public int intelement

//當做文字輸出,只能有乙個,必須是string型別

[xmltext]

public string strtxt

// 這個屬性將不會參與序列化

[xmlignore]

public string strdotsee

//不生成列表的父節點。

[xmlelement("elements")]

public listelementlist

[xmlarrayitem("item")]

[xmlarray("classname")]

public listitemlist

}//當用父類來宣告時,輸出的結果為例項的真實型別,也就是取決於 new的型別

[xmltype("classfu")]

public class fulei

//若父類宣告的list賦值時候有派生類混在一起輸出則必須加入派生類的 type

[xmlelement( typeof(zilei1))

, xmlelement( typeof(zilei2))

, xmlelement("***", typeof(fulei))]

public listitemlist

}[xmltype("classzione")]

public class zilei1 : fulei

}[xmltype("classzitwo")]

public class zilei2 : fulei

}

這是element

100 我是text

0 0

這是element

100 我是text 0

0 這是element

100 我是text 0

0 0

這是element

100 我是text 0

0這是element

100 我是text

父子1父子1

父子2父子2

父子2asf

插入 cdata標籤:

[xmlelement("elementnamestr")]

public xmlcdatasection _strelement;

[xmlignore]

public string strelement

set

}



xml解析和序列化總結

第一,xml是什麼?和html類似,區別 xml是儲存資料的,自定義的 html是顯示資料的,預定義的 常用1.0版本,不用1.1不想下相容 應用系統之間傳輸資料的格式 表示生活中的關係 配置檔案 第二,語法 宣告 駝峰命名法 必須放到第一行,還要第一列 元素的定義 有開始就有結束 沒有內容就行內結...

Xml序列化和反序列化

1.xmlserializer 類 該類用一種高度鬆散耦合的方式提供序列化服務。你的類不需要繼承特別的基類,而且它們也不需要實現特別的介面。相反,你只需在你的類或者這些類的公共域以及讀 寫屬性裡加上自定義的特性。xmlserializer 通過反射機制讀取這些特性並用它們將你的類和類成員對映到 xm...

XML序列化和反序列化

閱讀目錄 回到頂部 由於.net framework針對xml提供了很多api,這些api根據不同的使用場景實現了不同層次的封裝,比如,我們可以直接使用xmltextreader xmldocument xpath來取數xml中的資料,也可以使用linq to xml或者反序列化的方法從xml中讀取...