DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> .NET使XML串行化易如反掌
.NET使XML串行化易如反掌
編輯:XML基礎     

 

人們一直高喊XML是解決系統互聯問題的關鍵, 而.NET framework 也為處理XML數據提供了許多不同的類庫. XmlDocument 類能讓你像處理文件一樣處理XML 數據, 而XmlReader, XmlWriter, 和它們的派生類使你能夠將XML 數據做為數據流處理. XmlSerializer 則提供了另外的方法, 它使你能夠將自己的對象串行和反串行化為XML. 串行化數據既能夠讓你像處理文件一樣對數據進行隨機存取, 同時又能夠跳過你不感興趣的元素. 在本文中, 我將向你展示如何使用XmlSerializer類以及如何在你的類中添加屬性來控制串行化過程.
  
  XmlSerializer
  XmlSerializer類存在於System.Xml.Serialization命名空間的System.Xml.dll中, 它用一種高度松散耦合的方式提供串行化服務. 你的類不需要繼承特別的基類, 而且它們也不需要實現任何特別的接口. 相反的, 你只需要在你的類或者這些類的公共域以及讀/寫屬性裡加上自定義的屬性. XmlSerializer 通過相反映射讀取這些屬性並用它們將你的類和類成員映射到XML元素和屬性.
  
  將XML 映射到對象
  考慮表A中的XML語句, 哪一個正確的描述了一家電影院中上映的電影呢?
  
  表A
  
  <?xml version="1.0" encoding="utf-8" ?>
  <theater>
   <name>The Camelot</name>
   <phone>(888)665-2222</phone>
   <movie minutes="120" stars="2">
   <title>The Score</title>
   <rating>R</rating>
   <showing>16:15:00</showing>
   <showing>19:05:00</showing>
   <showing>21:40:00</showing>
   </movie>
   <movie minutes="100">
   <title>Shrek</title>
   <rating>PG-13</rating>
   <showing>16:00:00</showing>
   <showing>19:00:00</showing>
   <showing>21:40:00</showing>
   </movie>
  </theater>
  
  
  
  表B中定義了一個Theater(電影院)類, 它包含了XmlSerializer使用的屬性映射.
  
  表B
  
  using System;
  using System.Xml.Serialization;
  
   namespace Articles.TechRepublic.XmlSerialization
  {
   [XmlRoot( "theater" )]
   public class Theater
   {
   [XmlElement( "name" )]
   public string Name = "";
  
   [XmlElement( "phone" )]
   public string Phone = "";
  
   [XmlElement( "movie" )]
   public Movie[] Movies;
  
   public override string ToString()
   {
   string movies = "";
   if ( Movies != null )
   foreach ( Movie movie in Movies )
   movies += "\n" + movie.ToString();
  
   return String.Format( "{0}\n {1}\n{2}",
   Name, Phone, movies );
   }
  }
  
   
  
  
  
  XmlRoot 屬性將類Theater映射到XML的根元素theat

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved