教你一種 .NET中書寫XML的簡單方法_Xml教程
推薦:用帶批注的 XDR 架構(gòu)創(chuàng)建 XML 視圖可以使用 XDR(簡化 XML-Data)架構(gòu)創(chuàng)建關(guān)系數(shù)據(jù)的 XML 視圖。然后可以使用 XPath 查詢來查詢這些視圖。這類似于使用 CREATE VIEW 語句創(chuàng)建視圖并指定對視圖的 SQL 查詢。 XML 架構(gòu)描述 XML
XML是一項(xiàng)熱門的技術(shù)。它之所以能夠引起人們的興趣,一個(gè)主要的原因在于它十分的簡單,人們可以很容易地理解和使用它。每一個(gè)程序員都能輕易地看懂一個(gè)XML文件,理解它包含的內(nèi)容。
.NET中包含了很多支持XML的類,這些類使得程序員使用XML編程就如同理解XML文件一樣簡單。在這篇文章中,我將給出這樣的一個(gè)類的使用示例,這個(gè)類就是XmlTextWriter類。
XmlTextWriter類允許你將XML寫到一個(gè)文件中去。這個(gè)類包含了很多方法和屬性,使用這些屬性和方法可以使你更容易地處理XML。為了使用這個(gè)類,你必須首先創(chuàng)建一個(gè)新的XmlTextWriter對象,然后你可以將XML片斷加入到這個(gè)對象中。這個(gè)類中包含了不少的方法用于將各種類型的XML元素添加到XML文件中,下表給出了這些方法的名字和描述情況:
方法 描述
WriteStartDocument
書寫版本為“1.0”的 XML 聲明
WriteEndDocument
關(guān)閉任何打開的元素或?qū)傩?br />
Close
關(guān)閉流
WriteDocType
寫出具有指定名稱和可選屬性的 DOCTYPE 聲明
WriteStartElement
寫出指定的開始標(biāo)記
WriteEndElement
關(guān)閉一個(gè)元素
WriteFullEndElement
關(guān)閉一個(gè)元素,并且總是寫入完整的結(jié)束標(biāo)記
WriteElementString
寫出包含字符串值的元素
WriteStartAttribute
書寫屬性的起始內(nèi)容
WriteEndAttribute
關(guān)閉上一個(gè) WriteStartAttribute 調(diào)用
WriteRaw
手動(dòng)書寫原始標(biāo)記
WriteString
書寫一個(gè)字符串
WriteAttributeString
出具有指定值的屬性
WriteCData
寫出包含指定文本的 <![CDATA[...]]> 塊
WriteComment
寫出包含指定文本的注釋 <!--...-->
WriteWhiteSpace
寫出給定的空白
WriteProcessingInstruction
寫出在名稱和文本之間帶有空格的處理指令,如下所示:<?name text?>
如果你對于XML十分熟悉,那么你一定能很好的理解上面的這些方法。下面我們將給出一個(gè)例子,在這個(gè)例子中,我們將先創(chuàng)建一個(gè)文檔,添加一些元素,然后關(guān)閉這個(gè)文檔。添加了元素后你還可以添加子元素,屬性和其他內(nèi)容。下面的代碼就是這樣的一個(gè)例子,它創(chuàng)建了一個(gè)文件名為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"); //關(guān)閉根元素,并書寫結(jié)束標(biāo)簽 writer.WriteEndElement(); //將XML寫入文件并且關(guān)閉XmlTextWriter writer.Close(); } } |
如果你編譯并且執(zhí)行上面的代碼,你將創(chuàng)建這個(gè)XML文件,文件中包含如下內(nèi)容:
<items> <title>Unreal Tournament 2003</title> <title>C&C: Renegade</title> <title>Dr. Seuss's ABC</title> </items> |
上面的代碼創(chuàng)建了一個(gè)名為writer的XmlTextWriter對象。當(dāng)這個(gè)對象被創(chuàng)建時(shí),它被關(guān)聯(lián)到一個(gè)名為titles.xml的文件。接著,程序創(chuàng)建了一個(gè)叫做items的根屬性,WriteStartElement方法創(chuàng)建了這個(gè)屬性的開始標(biāo)簽。接下來,程序調(diào)用了WriteElementString方法創(chuàng)建了三個(gè)子元素。從上面的代碼你還可以看到,這個(gè)方法使用第一個(gè)參數(shù)(在上面的程序中是title)作為元素的標(biāo)簽;使用第二個(gè)參數(shù)作為元素的值。當(dāng)你添加了所有的元素后,你需要關(guān)閉根元素。這時(shí)你可以調(diào)用WriteEndElement方法關(guān)閉那個(gè)最近被打開的元素;在本例中,這個(gè)最近被打開的元素就是根元素。當(dāng)所有的數(shù)據(jù)都已經(jīng)寫好,根元素也已經(jīng)關(guān)閉時(shí),你可以將信息傳送給你的XmlTextWriter。這意味著這時(shí)候你可以調(diào)用Close方法關(guān)閉它了。
上面的代碼相對十分的簡單,下面我們看一個(gè)使用了XmlTextWriter類中更多方法,功能更加完善的例子。
using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlTextWriter writer = new XmlTextWriter("myMedia.xml", null); //使用自動(dòng)縮進(jìn)便于閱讀 writer.Formatting = Formatting.Indented; //書寫根元素 writer.WriteStartElement("items"); //開始一個(gè)元素 writer.WriteStartElement("item"); //向先前創(chuàng)建的元素中添加一個(gè)屬性 writer.WriteAttributeString("rating", "R"); //添加子元素 writer.WriteElementString("title", "The Matrix"); writer.WriteElementString("format", "DVD"); //關(guān)閉item元素 writer.WriteEndElement(); // 關(guān)閉元素 //在節(jié)點(diǎn)間添加一些空格 writer.WriteWhitespace("\n"); //使用原始字符串書寫第二個(gè)元素 writer.WriteRaw("<item>" "<title>BloodWake</title>" "<format>XBox</format>" "</item>"); //使用格式化的字符串書寫第三個(gè)元素 writer.WriteRaw("\n <item>\n" " <title>Unreal Tournament 2003</title>\n" " <format>CD</format>\n" " </item>\n"); // 關(guān)閉根元素 writer.WriteFullEndElement(); //將XML寫入文件并關(guān)閉writer writer.Close(); } } |
上面代碼編譯運(yùn)行后將得到myMedia.xml文件,文件的內(nèi)容為:
<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> |
上面代碼中的注釋說明了這個(gè)程序的功能是如何實(shí)現(xiàn)的。需要記住的一件事是:當(dāng)調(diào)用方法開始一個(gè)操作時(shí),你需要在程序的合適的地方調(diào)用方法結(jié)束這個(gè)操作。例如,你調(diào)用了StartElement,你就必須調(diào)用EndElement關(guān)閉元素;當(dāng)然在這兩個(gè)調(diào)用之間你也可以加入一個(gè)子元素。無論你何時(shí)調(diào)用EndElement方法,它總是關(guān)閉最近使用StartElement方法打開的那個(gè)元素(這和棧的工作方式很相似)。
使用XmlTextWriter十分的容易,不過我還是建議你自己動(dòng)手試試這些代碼和方法。你試過以后會(huì)發(fā)現(xiàn)這些代碼能夠很容易地集成到你的程序中。你還應(yīng)該記住,XmlTextWriter僅僅是.NET提供的眾多XML類中的一個(gè)。和XmlTextWriter一樣,其他的XML類也十分的容易使用
分享:怎樣用XML和XSL來生成動(dòng)態(tài)頁面xml(可擴(kuò)展標(biāo)記語言)看起來可能像某種w3c標(biāo)準(zhǔn)——現(xiàn)在沒有什么實(shí)際影響,即使以后能派上用場,也是很久以后的事。但實(shí)際上,它現(xiàn)在已經(jīng)得到了應(yīng)用。所以,不要等到xml已被加進(jìn)了你
- xml創(chuàng)建節(jié)點(diǎn)(根節(jié)點(diǎn)、子節(jié)點(diǎn))
- WML開發(fā)教程之 WAP網(wǎng)站服務(wù)器配置方法
- WMLScript的語法基礎(chǔ)
- 收集的WML Script標(biāo)準(zhǔn)函數(shù)庫
- WML教程之文本框控件Input
- 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)
- xml文件的結(jié)構(gòu)解讀
- 關(guān)于XSL - XSL教程
- 選擇模式 - XSL教程 - 2
- XPath入門 - XSL教程 - 3
- 匹配模式 - XSL教程 - 4
- 測試模式 - XSL教程 - 5
- 相關(guān)鏈接:
- 教程說明:
Xml教程-教你一種 .NET中書寫XML的簡單方法
。