六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

串行化XML(二)

[摘要]由 串行化XML(一) 可以知道XML的序列化(Serialization)。它是這樣一個過程:得到一個對象,把對象轉換為一個XML文檔,并且保存它以供使用,或者把它傳到網絡上其他地方以供使用。在.NET中,XML serialization通過檢查類的屬性是否被標志為read/write來工作。...
由 串行化XML(一) 可以知道XML的序列化(Serialization)。它是這樣一個過程:得到一個對象,把對象轉換為一個XML文檔,并且保存它以供使用,或者把它傳到網絡上其他地方以供使用。在.NET中,XML serialization通過檢查類的屬性是否被標志為read/write來工作。只要有其中一個屬性,該類的值就會被取出并插入到一個XML文檔里去。反序列化(De-serialization)則是一個相反的過程。




將一個對象串行化為xml后,再并行化,使其還原為原來的對象有時,在并行的xml當中可能存在意外的xml節點。

如果不處理這些意外的xml 的節點,XmlSerializer將忽略這些意外的節點,如果要處理這些意外節點,可以使用XmlSerializer的一下事件進行處理:

¨ UnknownNode

¨ UnknownElement

¨ UnknownAttribute

¨ UnreferencedObject

現在將book.xml的格式更改為:

<?xml version="1.0" encoding="utf-8"?>

<Book id="001" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<BookID>1</BookID>

<BookName>數學</BookName>

<Exception>Some Text</Exception>

</Book>

我們增加了一些意外的節點、屬性,然后執行并行化過程:

Dim serializer As New Xml.Serialization.XmlSerializer(GetType(bookShop))

AddHandler serializer.UnknownAttribute, AddressOf myUnknownAttribute

AddHandler serializer.UnknownElement, AddressOf myUnknownElement

AddHandler serializer.UnknownNode, AddressOf myUnknownNode
Dim reader As System.IO.StreamReader = New System.IO.StreamReader("E:\serializer\book.xml")

Dim a As bookShop = CType(serializer.Deserialize(reader), bookShop)

reader.Close()

Console.WriteLine("BookShop Name:" & a.BookName)

Console.WriteLine("BookShop ID:" & a.BookID)

Console.WriteLine("Print Enter to Exit.............")

Console.ReadLine()

我們同樣增加了意外節點、屬性的處理代碼,執行結果為:




這樣我們就可以查看那些意外的節點、屬性的信息了。

另外,我們還可以靈活的控制串行化xml 的格式,這樣可以很方便的與外部應用程序進行交換對象。我們可以在類中加入.NET Framework屬性來控制串行化xml 的格式。

Imports System.Xml

Imports System.Xml.Serialization

<XmlRoot(elementname:="Root_Book", namespace:="URI:MylocalURI")> _

Public Class Book

<XmlElement(elementname:="Book_ID", namespace:="URI:MylocalURI")> Public BookID As Integer

<XmlAttributeAttribute(AttributeName:="Name")> _

Public BookName As String

<XmlText()> _

Public test_Text As String

<XmlIgnore()> _

Public IgnoreText As String

‘IgnoreText 將不被串行化

End Class

Module Serialization

<STAThread()> _

Public Sub main()

Dim book As New book

book.BookID = 1

book.BookName = "數學"

book.test_Text = "Some Text"

book.IgnoreText = "IgnoreText"

Dim serializer As New Xml.Serialization.XmlSerializer(GetType(book))

Dim writer As System.IO.StreamWriter = New System.IO.StreamWriter("E:\serializer\book.xml")

serializer.Serialize(writer, book)

writer.Close()

End Sub

End Module

則生成的XML格式為:

<?xml version="1.0" encoding="utf-8"?>

<Root_Book xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Name="數學" xmlns="URI:MylocalURI">

<Book_ID>1</Book_ID>

Some Text

</Root_Book>






相關文章

主站蜘蛛池模板: 欧美综合激情 | 日韩在线三级 | 欧美在线观看视频网站 | 日韩不卡视频在线 | 香蕉免费一级视频在线观看 | 日本a级片在线播放 | 欧美又大粗又爽又黄大片视频黑人 | 中文字幕第66页永久乱码 | 日本福利片国产午夜久久 | 日本免费在线 | 最新欧美伦禁片在线观看 | 日本一区免费看 | 亚洲 欧美 中文字幕 | 亚洲一级大黄大色毛片 | 午夜毛片不卡高清免费 | 午夜视频免费 成人 | 一区二区三区视频在线 | 日本高清视频在线 | 在线亚洲精品国产波多野结衣 | 亚洲精品高清视频 | 亚洲地址一地址二地址三 | 日本无卡码免费一区二区三区 | 天天射天天射天天射 | 日韩一级在线观看 | 亚洲综合亚洲综合网成人 | 三级黄色影院 | 小黄鸭b站视频 | 色哟哟国产成人精品 | 桃花久久 | 在线视频一区二区三区在线播放 | 欧美限制级在线 | 天天做天天爱天天爽综合区 | 欧美一级黄色片 | 欧美小视频在线 | 香蕉免费一区二区三区 | 天天干网站| 色综合久久丁香婷婷 | 全免费观看一级 | 日韩999| 日本一二区在线观看 | 天天干夜夜叭 |