增加XML文件內容
在Web Form中分別增加相應的四個Label(姓名,來自哪裡,Email地址,留言內容)和四個TextBox和一個用於提交的Button,並為這button增加如下代碼:
string datafile = "guest.xml" ;XmlDocument xmldocument = new XMLDocument() ;
XMLdocument.Load(Server.MapPath(datafile)) ;
//把guest.xml讀到XMLdocument中
DocumentNavigator navigator = new DocumentNavigator(XMLdocument) ;
//最重要的類
navigator.MoveToDocumentElement() ;
navigator.Insert(System.Xml.TreePosition.FirstChild, XMLNodeType.Elemen
t, "Guest","","") ;//插入節點Guest
navigator.Insert(System.Xml.TreePosition.FirstChild, XMLNodeType.Elemen
t, "Name","","") ;
navigator.Insert(System.Xml.TreePosition.FirstChild, XMLNodeType.Text,"Na
me","","") ;
navigator.Value=Name.Text ;
//為該節點賦值
navigator.MoveToParent() ;
//返回父節點 Guest
……
//使用同類語句,在元素Name下插入另一些元素如Country、E-mail地址和留言等
XMLdocument.Save(Server.MapPath(datafile));
//最後保存這個XML文檔
navigator=null ;
XMLdocument=null ;
//釋放XML文檔,這樣其他程序可以用它
上述代碼使用DocumentNavigator類增加元素和內容,注意使用後要釋放資源。
刪除XML文件內容
刪除選定記錄,對於你上面選擇的節點,下面代碼可查找到該節點並清除選中的信息:
string datafile = "guest.XML" ;
XmlDocument xmldocument = new XMLDocument() ;
XMLdocument.Load(Server.MapPath(datafile)) ;
//把guest.xml讀到XMLdocument中
DocumentNavigator navigator = new DocumentNavigator(XMLdocument) ;
navigator.MoveToDocumentElement() ;
navigator.Select("/Guests/Guest[Name=""+Session["select_name"]+""]");
//參數是XPath
navigator.RemoveSelected();
//執行刪除
XMLdocument.Save(Server.MapPath(datafile));
//最後保存這個XML文檔
navigator=null;
//釋放類
XMLdocument=null ;
//釋放XML文檔,這樣其他程序可以用它
如需將XML文件中所有信息清除,使用“navigator.RemoveChildren();”語句即可實現。
結 論
綜上可知,C#編寫XML應用程序不但快捷而且方便,在編寫ASP.Net數據庫應用程序時,用XML文件替代一些小的Table,能減少許多數據庫存取連接,也能讓其他網絡程序更易使用這些數據。
目前XML的主要瓶頸在於文件系統的讀出或寫入,故應使用更多內存和緩存方式,如果信息量不是巨大無比且修改量也較小,而浏覽量巨大的話,使用XML方法將是很好的選擇;相反,如數據量巨大,應考慮使用支持XML的數據庫,無論你使用ADO+連接其他數據庫,還是使用SQL Server,C#中都有直接的類函數可讓這些數據庫中的信息直接和XML交互訪問。