.NET中書寫XML的簡單方法

黄舟
發布: 2017-03-01 16:59:44
原創
1372 人瀏覽過

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
 寫出包含指定文字的 區塊
 
WriteComment
 寫出包含指定文字的註解
 
WriteWhiteSpace
 寫出給定的空白
 
WritePRocessingInstruction
 寫出在名稱和文字之間帶有空格的處理指令,如下所示:

如果你對於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&#39;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文件,檔案的內容為:
 

<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類別也十分的容易使用

 以上就是.NET中書寫XML的一種簡單方法的內容,更多相關內容請關注PHP中文網(www.php.cn)!


#
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!