當前位置:編程學習大全網 - 網絡軟體 - ASP.Net+XML打造留言薄

ASP.Net+XML打造留言薄

  壹.概述

 留言簿是網站的壹個重要組成部分 是訪問者發表意見的場所 也是網站管理員了解網站基本運行情況的有力工具 所以留言簿在現在的網站中扮演了十分重要的角色

 不過在以前開發壹個留言簿並不是壹件容易的事 開發者的工作量往往會很大 而現在隨著微軟推出VS NET 相應的技術也推陳出新 特別是XML技術在 NET Framework中的廣泛運用 使得整個 NET構架具有十分優越的基礎 而ASP NET中推出的嶄新的編程模型更使得開發Web應用程序變得非常容易 本文就結合ASP NET技術和XML技術的優點向大家介紹如何打造壹個屬於自己的留言簿

  二.實現方法

 壹個基本的留言簿應至少包括兩個功能 接受用戶輸入的信息並保存該信息到後臺數據庫 顯示用戶輸入的信息 用戶輸入的信息壹般包括用戶名 Email地址 QQ號碼 用戶主頁 留言信息等 這些信息通常是保存在後臺數據庫的某個表中的 不過本文要運用壹個XML文件來存儲這些信息 顯示用戶輸入的信息時壹般得把所有的信息都顯示出來 這裏的方法就是從XML文件中讀取數據並運用XSLT技術對其進行格式轉換 最後以HTML的形式顯示在瀏覽器中

 這樣 我們的留言簿就需要兩個Web頁面 壹個用於接受用戶的輸入信息 另壹個用於顯示用戶已經輸入過的信息 而存儲信息的XML文件(guestbook xml)則需具有如下的結構

<?xml version= encoding= GB ?><guestbook><guest><name>令狐沖</name><email>doose@etang </email><qq> </qq><homepage> doose </homepage><ment>本留言簿由 令狐沖 創建 希望妳能喜歡哦 )要知道如何創建壹個屬於自己的留言簿 那麽就請仔細閱讀《運用ASP NET和XML技術打造留言簿》壹文!</ment></guest></guestbook>

 下面我們先來創建用於接受用戶輸入信息的Web頁面-GuestBook aspx 根據前面所提的基本要求 該Web頁面包括了以下幾個部分 留言簿標題 用戶名 標簽及輸入框 Email地址 標簽及輸入框 QQ號碼 標簽及輸入框 個人主頁 標簽及輸入框 留言信息 標簽及輸入框 壹個 確定 按鈕 壹個 重置 按鈕 壹個 查看留言簿 按鈕 同時該頁面還包括了兩個驗證按鈕 分別用於驗證用戶名以及Email地址是否為空 若為空 則提醒用戶輸入 同時 為使留言簿具有良好的用戶界面 我運用了表格進行頁面布置 這樣留言簿中的各個成分就能有條有理 層次分明了 有關該Web頁面的詳細代碼請參考文後附帶的源代碼 這裏就不給出了 頁面布置的圖示如下

 完成了該Web頁面的布置 我們僅僅是完成了壹部分的工作 到此為止我們並沒有進行過真正的編碼 我想大家對ASP NET中的代碼後置技術肯定是了解或熟悉的 它將Web頁面的布置工作和後端的編碼工作區分開來 達到了良好的分離效果 下面我們就為該Web頁面中的三個按鈕分別編寫消息相應函數

private void btnOK_Click(object sender System EventArgs e){SaveXMLData();

name Text = ;email Text = ;qq Text = ;homepage Text = ;ment Text = ;}

private void btnReset_Click(object sender System EventArgs e){name Text = ;email Text = ;qq Text = ;homepage Text = ;ment Text = ;}

private void btnView_Click(object sender System EventArgs e){// 顯示所有用戶的留言信息Response Redirect( ViewGuestBook aspx );}

 其中 第壹個按鈕是最重要的 它能將用戶的輸入信息存儲到XML文件中 調用的方法就是SaveXMLData() 而第二個按鈕僅僅完成文本框的重置清空工作 第三個按鈕的作用是運用另壹個Web頁面顯示所有的用戶輸入信息 同時 第壹個按鈕在成功保存信息後也會將瀏覽器導向到顯示所有用戶輸入信息的頁面

 下面我們來詳細分析壹下SaveXMLData()方法 其實現如下

private void SaveXMLData(){try{// 創建壹個XmlDocument對象 用於載入存儲信息的XML文件XmlDocument xdoc = new XmlDocument();xdoc Load( Server MapPath( guestbook xml ));

// 創建壹個新的guest節點並將它添加到根節點下XmlElement parentNode = xdoc CreateElement( guest );xdoc DocumentElement PrependChild( parentNode );

// 創建所有用於存儲信息的節點XmlElement nameNode = xdoc CreateElement( name );XmlElement emailNode = xdoc CreateElement( email );XmlElement qqNode = xdoc CreateElement( qq );XmlElement homepageNode = xdoc CreateElement( homepage );XmlElement mentNode = xdoc CreateElement( ment );

// 獲取文本信息XmlText nameText = xdoc CreateTextNode( name Text );XmlText emailText = xdoc CreateTextNode( email Text );XmlText qqText = xdoc CreateTextNode( qq Text );XmlText homepageText = xdoc CreateTextNode( homepage Text );XmlText mentText = xdoc CreateTextNode( ment Text );

// 將上面創建的各個存儲信息的節點添加到guest節點下但並不包含最終的值parentNode AppendChild( nameNode );parentNode AppendChild( emailNode );parentNode AppendChild( qqNode );parentNode AppendChild( homepageNode );parentNode AppendChild( mentNode );

// 將上面獲取的文本信息添加到與之相對應的節點中nameNode AppendChild( nameText );emailNode AppendChild( emailText );qqNode AppendChild( qqText );homepageNode AppendChild( homepageText );mentNode AppendChild( mentText );

// 保存存儲信息的XML文件xdoc Save( Server MapPath( guestbook xml ));

// 顯示所有用戶的留言信息Response Redirect( ViewGuestBook aspx );}catch( Exception e ) {}}

 該方法主要運用了XmlDocument類 XmlElement類以及XmlText類等 這些類都是包含在System Xml命名空間中的 所以請在代碼文件的開頭處添加using System Xml的語句 該方法運用了壹個try catch語句塊 在try部分首先通過創建壹個XmlDocument對象來載入XML文件 然後創建根節點的兒子-guest節點並在guest節點下添加存儲信息所必須的五個子節點 所有這些子節點都是XmlElement對象 它們是通過XmlDocument對象的CreateElement()方法來獲取的 同時 XmlDocument對象還通過CreateTextNode()方法來獲取文本信息並在後面將其添加到相對應的節點中 在合理的添加guest節點及其子節點以及文本信息後 XmlDocument對象通過Save()方法將用戶輸入的信息保存到XML文件中 最後 瀏覽器會導向到顯示所有用戶輸入信息的頁面 這樣 該Web頁面運行的效果如圖 所示

 下面我們來創建用於顯示所有用戶輸入信息的頁面-ViewGuestBook aspx 在該Web頁面中 我們要運用到XSLT技術 它能將前面創建的XML文件中的數據以HTML的形式顯示出來 由於是運用XSLT技術顯示用戶輸入信息的 所以在設計該Web頁面時我們無需添加任何Web控件 只要重載該Web頁面的Load()方法即可

private void Page_Load(object sender System EventArgs e){// 創建壹個XmlDocument對象以載入存儲信息的XML文件XmlDocument xdoc = new XmlDocument();xdoc Load( Server MapPath( guestbook xml ));

// 創建壹個XslTransform對象並導入XSL文件XslTransform xslt = new XslTransform();xslt Load( Server MapPath( guestbook xsl ));

string xmlQuery = //guestbook ;XmlNodeList nodeList = xdoc DocumentElement SelectNodes( xmlQuery );

MemoryStream ms = new MemoryStream();xslt Transform( xdoc null ms );ms Seek( SeekOrigin Begin );

StreamReader sr = new StreamReader( ms );

// 顯示輸出結果Response Write( sr ReadToEnd() );}

 該方法首先創建壹個XmlDocument對象用於載入前面創建的XML數據文件 之後創建壹個XslTransform對象並導入相應的XSL文件 通過該XSL文件中的內容它能將原來的XML文件中的數據格式化為HTML的形式並顯示在瀏覽器中 因為其中運用到了XSLT轉換 所以我們還得在代碼文件的開頭處添加using System Xml Xsl的語句

 下面便是XSL文件的源代碼 其中最重要的部分是<xsl:template match= name >……</xsl:template>壹塊

<xsl:stylesheet xmlns:xsl= // w / /XSL/Transform version= ><xsl:template match= / ><table border= style= border collapse: collapse bordercolor= Teal align= center width= height= > <tr><td valign= middle align= center bgcolor= Teal colspan= width= height= ><font style= color:White;background color:Teal;font family:華文行楷;font size:X Large;font weight:bold; >歡迎訪問 令狐沖 的留言簿!</font></td></tr><tr><td width= height= align= left colspan= ></td></tr><xsl:for each select= //guest ><xsl:apply templates select= name /> </xsl:for each><tr><td valign= middle align= center colspan= width= ><font>本留言簿由<a href= mailto: @fudan edu cn >王凱明</a>開發! </font></td></tr></table></xsl:template><xsl:template match= name ><tr><td width= height= align= right ><font>用戶名 </font></td><td width= height= valign= middle align= left ><font><xsl:value of select= /></font></td></tr><tr><td width= height= align= right bgcolor= e e e ><font>Email地址 </font></td><td width= height= valign= middle align= left bgcolor= #e e e ><font><a HREF= mailto:{ /email} ><xsl:apply templates select= /email /></a></font></td> </tr><tr><td width= height= align= right ><font>QQ號碼 </font></td><td width= height= valign= middle align= left ><font><xsl:apply templates select= /qq /></font></td></tr><tr><td width= height= align= right bgcolor= #e e e ><font>個人主頁 </font></td><td width= height= valign= middle align= left bgcolor= #e e e ><font><a HREF= //{ /homepage} target= _blank ><xsl:apply templates select= /homepage /></a></font></td> </tr><tr><td width= height= valign= top align= right ><font>留言信息 </font></td><td width= height= valign= top align= left ><font><xsl:apply templates select= /ment /></font></td> </tr><tr><td width= height= align= left colspan= ></td></tr></xsl:template></xsl:stylesheet>

 這樣 當用戶點擊 查看留言簿 按鈕或是成功輸入信息後瀏覽器便導向到該顯示所有用戶輸入信息的Web頁面 其運行效果圖示如下

?

  三.總結

lishixinzhi/Article/program/net/201311/15783

  • 上一篇:我喜歡的人名字裏有個“鵬”他的網名叫月月鳥 我的應該叫什麽?
  • 下一篇:韌帶的解釋韌帶的解釋是什麽
  • copyright 2024編程學習大全網