ASP.NET网站制作之用ASP.NET和XML做旧事体系
2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。asp.net|xml|旧事体系这里我就用xml取代数据,写一个旧事公布体系,但愿可以起到举一反三的感化,使更多的人可以懂得这些最新的手艺。上面先容这几个文件。contents.xml
<?xmlversion="1.0"encoding="GB2312"?>
<topiclisttype="AspCoolNews">
<topic>
<title>aspcoolnews!</title>
<href>main.aspx?name=hello</href>
</topic>
<topic>
<title>Resolveaproblem</title>
<href>main.aspx?name=test</href>
</topic>
</topiclist>
这是一个很复杂的xml文件,它的感化是用来显现旧事的列表。
hello.xml
<?xmlversion="1.0"encoding="GB2312"?>
<document>
<title>aspcoolnews!</title>
<abstract>testnews</abstract>
<author>feiying</author>
<content>
<paragraph>Thefirettest</paragraph>
</content>
</document>
这个文件是用来显现旧事的内容,个中各个意义人人一看就分明,我就不在这儿多说了。
上面给人人看旧事列表显现的页面。
news.aspx
<%@ImportNamespace="System"%>
<%@PageLanguage="C#"Debug="true"codepage="936"%>
<%@ImportNamespace="System.IO"%>
<%@AssemblyName="System.Xml"%>
<%@ImportNamespace="System.Xml"%>
<%@ImportNamespace="System.Xml.Xsl"%>
<html>
<head>
<title>
</title>
<scriptlanguage="c#"runat="server">
publicstringxslt()
{
StringWriterwriter=newStringWriter();
//装进xml工具
XmlDocumentxmldoc=newXmlDocument();
xmldoc.Load(Server.MapPath("Contents.xml"));
//装进xsl工具
XslTransformxsldoc=newXslTransform();
xsldoc.Load(Server.MapPath("news.xsl"));
//把xml转化成html页面
DocumentNavigatornav=newDocumentNavigator(xmldoc);
xsldoc.Transform(nav,null,writer);
returnwriter.ToString();
}
</script>
</head>
<body>
<%=xslt()%>
<palign="center">
该程序由<ahref="http://www.webjx.com">www.webjx.com</a>计划制造.
</p>
</body>
</html>
这个页面完成了从xml经由过程xslt转化成html文件,也使我关于xslt有了进一步的熟悉。
上面是旧事内容显现的页面:
<Pclass=code>main.aspx
<%@ImportNamespace="System"%>
<%@PageLanguage="C#"Debug="true"codepage="936"%>
<%@ImportNamespace="System.IO"%>
<%@AssemblyName="System.Xml"%>
<%@ImportNamespace="System.Xml"%>
<%@ImportNamespace="System.Xml.Xsl"%>
<html>
<head>
<title>
</title>
<scriptlanguage="c#"runat="server">
publicstringxslt()
{
StringWriterwriter=newStringWriter();
XmlDocumentxmldoc=newXmlDocument();
xmldoc.Load(Server.MapPath(Request["name"]+".xml"));
XslTransformxsldoc=newXslTransform();
xsldoc.Load(Server.MapPath("main.xsl"));
DocumentNavigatornav=newDocumentNavigator(xmldoc);
xsldoc.Transform(nav,null,writer);
returnwriter.ToString();
}
</script>
</head>
<body>
<%=xslt()%>
<palign="center">该程序由<ahref="http://www.webjx.com">www.webjx.com</a>计划制造</p>
</body>
</html>
这个功效和下面的一样,我在这儿就未几说了。
最初,人人来看一下最卖力的一个页面,这个页面的感化就是用来创建新的xml数据。
manage.aspx
<%@ImportNamespace="System.Xml.Xsl"%>
<%@ImportNamespace="System.Xml"%>
<%@AssemblyName="System.Xml"%>
<%@ImportNamespace="System.IO"%>
<%@PageLanguage="C#"Debug="true"codepage="936"%>
<%@ImportNamespace="System"%>
<HTML>
<HEAD>
<scriptlanguage="C#"runat="server">
publicvoidButton1_Click(objectsender,System.EventArgse)
{
//判别文件是不是存在
if(File.Exists(Server.MapPath(TextBox1.Text+".xml")))
{
Response.Write("文件名已存在,请重选文件名。");
Response.End();
}
else
{
XmlNodecurrNode;
XmlDocumentxmldoc=newXmlDocument();
xmldoc.Load(Server.MapPath("contents.xml"));
stringInsStr="<topic><title>"+TextBox2.Text+"</title><href>
main.aspx?name="+TextBox1.Text+"</href></topic>";
XmlDocumentFragmentdocFrag=xmldoc.CreateDocumentFragment();
docFrag.InnerXml=InsStr;
currNode=xmldoc.DocumentElement;
currNode.InsertAfter(docFrag,currNode.LastChild);
//savetheoutputtoafile
xmldoc.Save(Server.MapPath("contents.xml"));
//把TextBox5中的文件换成切合xml格局的内容。
stringxmlfile=TextBox5.Text.Replace("&","&");
xmlfile=xmlfile.Replace("<","<");
xmlfile=xmlfile.Replace(">",">");
xmlfile=xmlfile.Replace(@"""""",""");
xmlfile=xmlfile.Replace(""","");
xmlfile=xmlfile.Replace("n","</paragraph><paragraph>");
//把数据写进新建的xml文件中往。
XmlDocumentdoc=newXmlDocument();
doc.LoadXml("<?xmlversion="1.0"encoding="GB2312"?>
<document><title>"+TextBox2.Text+"</title><abstract>"+
TextBox4.Text"</abstract><author>"+TextBox3.Text+
"</author><content><paragraph>"+xmlfile+"</paragraph>
</content></document>");
doc.Save(Server.MapPath(TextBox1.Text+".xml"));
Response.Write("Youhavainputthearticle!");
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
TextBox5.Text="";
}
//向目次文件中写数据
}
publicvoidButton2_Click(objectsender,System.EventArgse)
{}
</script>
<metacontent="InternetExplorer5.0"name=vs_targetSchema>
<metacontent="MicrosoftVisualStudio7.0"name=GENERATOR>
<metacontent=C#name=CODE_LANGUAGE>
</HEAD>
<bodyMS_POSITIONING="GridLayout">
<formrunat="server">
<FONTface=宋体>
<asp:labelid=Label1style="Z-INDEX:100;LEFT:230px;POSITION:
absolute;TOP:27px"runat="server"Height="28px"Width="156px">
asp酷手艺资讯网网站内容公布体系
</asp:label>
<asp:labelid=Label2style="Z-INDEX:101;LEFT:110px;POSITION:
absolute;TOP:68px"runat="server"Height="25px"Width="65px">
文件名:
</asp:label>
<asp:textboxid=TextBox1style="Z-INDEX:102;LEFT:255px;POSITION:
absolute;TOP:64px"runat="server"Height="33px"Width="178px">
</asp:textbox>
<asp:labelid=Label3style="Z-INDEX:103;LEFT:108px;POSITION:
absolute;TOP:126px"runat="server"Height="36px"Width="86px">
文章称号:
</asp:label>
<asp:textboxid=TextBox2style="Z-INDEX:104;LEFT:256px;POSITION:
absolute;TOP:114px"runat="server"Height="37px"Width="177px">
</asp:textbox>
<asp:labelid=Label4style="Z-INDEX:105;LEFT:114px;POSITION:
absolute;TOP:183px"runat="server"Height="31px"Width="89px">
</asp:label>
<asp:textboxid=TextBox3style="Z-INDEX:106;LEFT:256px;POSITION:
absolute;TOP:183px"runat="server"Height="36px"Width="179px">
</asp:textbox>
<asp:labelid=Label5style="Z-INDEX:107;LEFT:114px;POSITION:
absolute;TOP:241px"runat="server"Height="51px"Width="81px">
择要:
</asp:label>
<asp:textboxid=TextBox4style="Z-INDEX:108;LEFT:256px;POSITION:
absolute;TOP:245px"runat="server"Height="36px"Width="179px">
</asp:textbox>
<asp:labelid=Label6style="Z-INDEX:109;LEFT:116px;POSITION:
absolute;TOP:315px"runat="server"Height="36px"Width="78px">
内容:
</asp:label>
<asp:textboxid=TextBox5style="Z-INDEX:110;LEFT:259px;POSITION:
absolute;TOP:303px"runat="server"Height="95px"Width="252px"
textmode="MultiLine">
</asp:textbox>
</FONT>
<INPUTid=Button2style="Z-INDEX:113;LEFT:343px;WIDTH:40px;
POSITION:absolute;TOP:430px;HEIGHT:24px"type=buttonvalue=重置
name=Button2runat="server"OnServerClick="Button2_Click"DESIGNTIMEDRAGDROP="59">
<br>
<br>
<divid=messrunat=server>
</div>
<br>
<inputtype="button"value="提交"OnServerClick="Button1_Click"
runat="server"ID="Button1"NAME="Button1"style="Z-INDEX:112;
LEFT:268px;POSITION:absolute;TOP:430px">
</form>
</body>
</HTML>它有很多缺点的,有兴趣可以到网上去搜索一下。于是微软有发明了“下一代”C++:C++/CLI语言,这个可以解决在.NETFramework中,托管C++产生的问题。在《程序员》杂志上,lippman和李建中合作连载介绍了C++/CLI语言。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。 同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
页:
[1]