知识大全 ASP.Net+XML打造留言薄

Posted 信息

篇首语:男儿欲遂平生志,六经勤向窗前读。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.Net+XML打造留言薄相关的知识,希望对你有一定的参考价值。

ASP.Net+XML打造留言薄  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一.概述

  留言簿是网站的一个重要组成部分 是访问者发表意见的场所 也是网站管理员了解网站基本运行情况的有力工具 所以留言簿在现在的网站中扮演了十分重要的角色

  不过在以前开发一个留言簿并不是一件容易的事 开发者的工作量往往会很大 而现在随着微软推出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页面 其运行效果图示如下

 

  三.总结

cha138/Article/program/net/201311/15783

相关参考

知识大全 ASP.NET+XML打造网络硬盘

ASP.NET+XML打造网络硬盘  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文件传送常用的

知识大全 ASP.NET项目开发指南:留言回复

ASP.NET项目开发指南:留言回复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 ASP.NET项目开发指南:留言删除

ASP.NET项目开发指南:留言删除  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 ASP.NET项目开发指南:留言管理页面

ASP.NET项目开发指南:留言管理页面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nbs

知识大全 用ASP.Net和Access编写留言本

实例编程:用ASP.Net和Access编写留言本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!用

知识大全 ASP.NET中XML数据的处理

ASP.NET中XML数据的处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  SqlDataS

知识大全 ASP.NET中使用Treeview和XML

ASP.NET中使用Treeview和XML  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前

知识大全 基于ASP.NET与XML的网络硬盘开发

基于ASP.NET与XML的网络硬盘开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言  

知识大全 用ASP.NET结合XML制作广告管理程序

用ASP.NET结合XML制作广告管理程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文介绍一

知识大全 ASP.NET基于XML导航栏的制作

ASP.NET基于XML导航栏的制作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先说明本文