DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 基本應用實例快速步入XML編程世界
基本應用實例快速步入XML編程世界
編輯:XML詳解     

如果使用過MSXML3,那麼在.NET程序中使用XML將是一個相當簡單的過程。即時沒有接觸過MSXML3,也不要緊,你會發現使用.Net平台提供的相關類也是很容易的一件事情。

有兩種主要API可用於建立在XML文檔中的數據,它們包括只向前的無緩沖存取以及隨機存取,而且自始至終都使用到文檔對象模型DOM。有關這2個API的類位於System.XML集合中。

如果要快速有效地XML文檔中的數據,就需要使用XmlTextReader類。這個類采取“拉”模式處理方式,要比簡單XML API(SAX)中的“推”模式處理方式優越許多。使用XmlTextReader類之前首先要引用System.XML集合,在C#中是使用“using”關鍵字來引用,在Visual Basic中則是使用“imports”關鍵字。引用了集合後,就可以象下面的代碼所示開始例示讀操作了:

XmlTextReader reader = new XmlTextReader(pathToXMLDoc);

int elementCount = 0;

while (reader.Read()) {

if (reader.NodeType XMLNodeType.Element) {

elementCount++;

}

}

XmlTextReader類中有幾個不同的構造器,上面所示的負責接收一個XML文件的路徑作為字符串參數。

雖然只向前的“拉”模式處理相當有效率,但它卻是只讀的,所以不能允許執行插入、刪除或者更新XML文檔節點的操作。當需要對XML文檔施加的控制並需要更大的靈活性時,我們可以看一看文檔對象模型DOM。DOM API的功能將XML文檔中的每一個節點裝載到一個樹形結構中,看起來就象是一個“家譜”。內存中有了這個結構,隨機存取XML文檔中的不同節點就變得可行。

開始創建DOM樹形結構前,首先引用System.Xml集合,然後例示XMLDocument類:

XmlDocument xmlDoc = new XMLDocument();

xmlDoc.Load(pathToXMLDoc);

XmlNode root = XMLDoc.DocumentElement;

通過使用XmlDocument類中的相關方法,在樹形結構中添加節點的操作可以很容易地完成。下面的例子演示了如何從一個文件中裝載XML,然後在根節點root下添加一個子元素以及它的相關屬性:

XmlDocument xmlDoc = new XMLDocument();

XmlDoc.Load(pathToXMLDoc);

XmlElement root = XMLDoc.DocumentElement;

XMLElement newNode = doc.CreateElement("newNode");

newNode.SetAttribute("id","1");

root.AppendChild(newNode);

以上代碼執行後,將產生下面的XML文檔:

?XML version="1.0"?

root

newNode id="1"/

/root

當需要將包含XML的字符串裝載進DOM中時,可以使用XmlDocument類的LoadXml()方法。裝載進去後,就可以按照下面的方式操作XML:

string myXML = "rootsomeNodeHello/someNode/root";

XmlDocument xmlDoc = new XMLDocument();

xmlDoc.LoadXml(myXML);

//....manipulation or reading of the nodes can occur here

除了以上幾種,在System.XML集合中還有多種其他類可用於執行不同的任務。上面的介紹僅僅是淺嘗則止,大量的還需要的練習。

下面介紹如何使用XmlTextReader類讀取XML文檔,並將數據顯示輸出。

System.XML名稱空間中定義了兩個類-XmlReader與XmlTextReader,其中XmlTextReader類於XmlReader類,而XmlTextReader類就可以用於讀取XML文檔,這個文檔的Read函數將讀取文檔內容,直到節點尾部。

以下是具體的實現步驟:

1、引用名稱空間

因為相關XML的類是在System.XML名稱空間中定義的,所以第一件事情就是引用這個名稱空間:

using System.XML;

2、打開XML文檔

XmlTextReader類的構造器可用於打開一個XML文件。本例程的XML文件叫做xmltest.xml,位於C:“temp目錄下。打開文件c:“temp“xmltest.XML的命令

XmlTextReader reader = new XmlTextReader("C:““temp““xmltest.XML");

3、讀取數據

讀取XML文件的數據,可以使用XMLTextReader類的Read方法:

while ( reader.Read() )

{

Console.WriteLine(reader.Name);

}

4、完整執行代碼readXML.cs

namespace WriteToXML

{

using System;

using System.XML;

/// summary

/// Summary description for Class1.

/// /summary

public class Class1

{

public Class1()

{

}

public static int Main(string args)

{

try

{

XmlTextWriter writer = new XmlTextWriter("C:““temp““xmltest.XML", null);

writer.WriteStartDocument();

writer.WriteComment("Commentss: XMLWriter Test Program");

writer.WriteProcessingInstruction("Instruction","Person Record");

writer.WriteStartElement("p", "person", "urn:person");

writer.WriteStartElement("LastName","");

writer.WriteString("Chand");

writer.WriteEndElement();

writer.WriteStartElement("FirstName","");

writer.WriteString("Chand");

writer.WriteEndElement();

writer.WriteElementInt16("age","", 25);

writer.WriteEndDocument();

}

catch (Exception e)

{

Console.WriteLine ("Exception: {0}", e.ToString());

}

return 0;

}

}

}

要實現將XML數據插入到一個現存文檔或者一個新文檔中的目的,可以使用XmlNode類和XMLDocument類。具體的實現步驟

1、引用名稱空間

因為相關XML的類是在System.XML名稱空間中定義的,所以第一件事情就是引用這個名稱空間

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