教你一種 .NET中書寫XML的簡單方法_Xml教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:用帶批注的 XDR 架構創建 XML 視圖
      可以使用 XDR(簡化 XML-Data)架構創建關系數據的 XML 視圖。然后可以使用 XPath 查詢來查詢這些視圖。這類似于使用 CREATE VIEW 語句創建視圖并指定對視圖的 SQL 查詢。 XML 架構描述 XML

      XML是一項熱門的技術。它之所以能夠引起人們的興趣,一個主要的原因在于它十分的簡單,人們可以很容易地理解和使用它。每一個程序員都能輕易地看懂一個XML文件,理解它包含的內容。

      .NET中包含了很多支持XML的類,這些類使得程序員使用XML編程就如同理解XML文件一樣簡單。在這篇文章中,我將給出這樣的一個類的使用示例,這個類就是XmlTextWriter類。

      XmlTextWriter類允許你將XML寫到一個文件中去。這個類包含了很多方法和屬性,使用這些屬性和方法可以使你更容易地處理XML。為了使用這個類,你必須首先創建一個新的XmlTextWriter對象,然后你可以將XML片斷加入到這個對象中。這個類中包含了不少的方法用于將各種類型的XML元素添加到XML文件中,下表給出了這些方法的名字和描述情況:

      方法 描述

      WriteStartDocument
      書寫版本為“1.0”的 XML 聲明

      WriteEndDocument
      關閉任何打開的元素或屬性

      Close
      關閉流

      WriteDocType
      寫出具有指定名稱和可選屬性的 DOCTYPE 聲明

      WriteStartElement
      寫出指定的開始標記

      WriteEndElement
      關閉一個元素

      WriteFullEndElement
      關閉一個元素,并且總是寫入完整的結束標記

      WriteElementString
      寫出包含字符串值的元素

      WriteStartAttribute
      書寫屬性的起始內容

      WriteEndAttribute
      關閉上一個 WriteStartAttribute 調用

      WriteRaw
      手動書寫原始標記

      WriteString
      書寫一個字符串

      WriteAttributeString
      出具有指定值的屬性

      WriteCData
      寫出包含指定文本的 <![CDATA[...]]> 塊

      WriteComment
      寫出包含指定文本的注釋 <!--...-->

      WriteWhiteSpace
      寫出給定的空白

      WriteProcessingInstruction
      寫出在名稱和文本之間帶有空格的處理指令,如下所示:<?name text?>

      如果你對于XML十分熟悉,那么你一定能很好的理解上面的這些方法。下面我們將給出一個例子,在這個例子中,我們將先創建一個文檔,添加一些元素,然后關閉這個文檔。添加了元素后你還可以添加子元素,屬性和其他內容。下面的代碼就是這樣的一個例子,它創建了一個文件名為title的XML文件。


      using System;
      using System.IO;
      using System.Xml;
      public class Sample
      {
      public static void Main()
      {
      XmlTextWriter writer = new XmlTextWriter("titles.xml", null);
      //寫入根元素
      writer.WriteStartElement("items");
      //加入子元素
      writer.WriteElementString("title", "Unreal Tournament 2003");
      writer.WriteElementString("title", "C&C: Renegade");
      writer.WriteElementString("title", "Dr. Seuss's ABC");
      //關閉根元素,并書寫結束標簽
      writer.WriteEndElement();
      //將XML寫入文件并且關閉XmlTextWriter
      writer.Close();
      }
      }

      如果你編譯并且執行上面的代碼,你將創建這個XML文件,文件中包含如下內容:


      <items>
      <title>Unreal Tournament 2003</title>
      <title>C&amp;C: Renegade</title>
      <title>Dr. Seuss's ABC</title>
      </items>

      上面的代碼創建了一個名為writer的XmlTextWriter對象。當這個對象被創建時,它被關聯到一個名為titles.xml的文件。接著,程序創建了一個叫做items的根屬性,WriteStartElement方法創建了這個屬性的開始標簽。接下來,程序調用了WriteElementString方法創建了三個子元素。從上面的代碼你還可以看到,這個方法使用第一個參數(在上面的程序中是title)作為元素的標簽;使用第二個參數作為元素的值。當你添加了所有的元素后,你需要關閉根元素。這時你可以調用WriteEndElement方法關閉那個最近被打開的元素;在本例中,這個最近被打開的元素就是根元素。當所有的數據都已經寫好,根元素也已經關閉時,你可以將信息傳送給你的XmlTextWriter。這意味著這時候你可以調用Close方法關閉它了。

      上面的代碼相對十分的簡單,下面我們看一個使用了XmlTextWriter類中更多方法,功能更加完善的例子。


      using System;
      using System.IO;
      using System.Xml;
      public class Sample
      {
      public static void Main()
      {
      XmlTextWriter writer = new XmlTextWriter("myMedia.xml", null);
      //使用自動縮進便于閱讀
      writer.Formatting = Formatting.Indented;
      //書寫根元素
      writer.WriteStartElement("items");
      //開始一個元素
      writer.WriteStartElement("item");
      //向先前創建的元素中添加一個屬性
      writer.WriteAttributeString("rating", "R");
      //添加子元素
      writer.WriteElementString("title", "The Matrix");
      writer.WriteElementString("format", "DVD");
      //關閉item元素
      writer.WriteEndElement(); // 關閉元素
      //在節點間添加一些空格
      writer.WriteWhitespace("\n");
      //使用原始字符串書寫第二個元素
      writer.WriteRaw("<item>"
      "<title>BloodWake</title>"
      "<format>XBox</format>"
      "</item>");
      //使用格式化的字符串書寫第三個元素
      writer.WriteRaw("\n <item>\n"
      " <title>Unreal Tournament 2003</title>\n"
      " <format>CD</format>\n"
      " </item>\n");
      // 關閉根元素
      writer.WriteFullEndElement();
      //將XML寫入文件并關閉writer
      writer.Close();
      }
      }

      上面代碼編譯運行后將得到myMedia.xml文件,文件的內容為:


      <items>
      <item rating="R">
      <title>The Matrix</title>
      <format>DVD</format>
      </item>
      <item>
      <title>BloodWake</title>
      <format>XBox</format>
      </item>
      <item>
      <title>Unreal Tournament 2003</title>
      <format>CD</format>
      </item>
      </items>

      上面代碼中的注釋說明了這個程序的功能是如何實現的。需要記住的一件事是:當調用方法開始一個操作時,你需要在程序的合適的地方調用方法結束這個操作。例如,你調用了StartElement,你就必須調用EndElement關閉元素;當然在這兩個調用之間你也可以加入一個子元素。無論你何時調用EndElement方法,它總是關閉最近使用StartElement方法打開的那個元素(這和棧的工作方式很相似)。

      使用XmlTextWriter十分的容易,不過我還是建議你自己動手試試這些代碼和方法。你試過以后會發現這些代碼能夠很容易地集成到你的程序中。你還應該記住,XmlTextWriter僅僅是.NET提供的眾多XML類中的一個。和XmlTextWriter一樣,其他的XML類也十分的容易使用

      分享:怎樣用XML和XSL來生成動態頁面
      xml(可擴展標記語言)看起來可能像某種w3c標準——現在沒有什么實際影響,即使以后能派上用場,也是很久以后的事。但實際上,它現在已經得到了應用。所以,不要等到xml已被加進了你

      來源:模板無憂//所屬分類:Xml教程/更新時間:2009-05-18
      相關Xml教程