您的位置:软件 > 开发者网络 > 开发工具 > Web开发 > ASP > 正文
用ASP.NET和XML做的新闻系统
[文章信息]
作者:
时间:2003-04-22
出处:中国BS网
责任编辑:
[文章导读]
这里我就用xml代替数据,写一个新闻发布系统,希望能够起到抛砖引玉的作用......
advertisement
热点推荐
· 11.15软件精选 制作MSI文件
· 闪客五周年之闪客光荣榜
· 用Winamp“品尝”无限音乐
· 网络加、解密的技术应用
· 闪客五周年之闪客光荣榜:zoron
[正文]
  这里我就用xml代替数据,写一个新闻发布系统,希望能够起到抛砖引玉的作用,使更多的人能够了解这些最新的技术。下面介绍这几个文件。

contents.xml
<?xml version="1.0" encoding="GB2312"?>
<topiclist type="AspCool News">
<topic>
<title>aspcool news!</title>
<href>main.aspx?name=hello</href>
</topic>
<topic>
<title>Resolve a problem</title>
<href>main.aspx?name=test</href>
</topic>
</topiclist>

  这是一个很简单的xml文件,它的作用是用来显示新闻的列表。

hello.xml
<?xml version="1.0" encoding="GB2312"?>
<document>
<title>aspcool news!</title>
<abstract>test news</abstract>
<author>feiying</author>
<content>
<paragraph>The firet test</paragraph>
</content>
</document>

  这个文件是用来显示新闻的内容,其中各个意思大家一看就明白,我就不在这儿多说了。

  下面给大家看新闻列表显示的页面。

news.aspx
<%@ Import Namespace="System"%>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System.IO" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<head>
<title>
</title>
<script language="c#" runat="server">
public string xslt()
{
StringWriter writer = new StringWriter();
//装入xml对象
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath("Contents.xml"));
//装入xsl对象
XslTransform xsldoc = new XslTransform();
xsldoc.Load(Server.MapPath("news.xsl"));
//把xml转化成html页面
DocumentNavigator nav= new DocumentNavigator(xmldoc);
xsldoc.Transform(nav,null,writer);
return writer.ToString();
}
</script>
</head>
<body>
<%=xslt()%>
<p align="center">

  该程序由<a href="www.aspcool.comhttp://www.aspcool.com">www.aspcool.com</a>设计制作.

</p>
</body>
</html>

  这个页面完成了从xml通过xslt转化成html文件,也使我对于xslt有了进一步的认识。

  下面是新闻内容显示的页面:

main.aspx
<%@ Import Namespace="System"%>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System.IO" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<head>
<title>
</title>
<script language="c#" runat="server">
public string xslt()
{
StringWriter writer = new StringWriter();
XmlDocument xmldoc= new XmlDocument();
xmldoc.Load(Server.MapPath(Request["name"] +".xml"));
XslTransform xsldoc = new XslTransform();
xsldoc.Load(Server.MapPath("main.xsl"));
DocumentNavigator nav= new DocumentNavigator(xmldoc);
xsldoc.Transform(nav,null,writer);
return writer.ToString();
}
</script>
</head>
<body>
<%=xslt()%>
<p align="center">该程序由<a href="www.aspcool.comhttp://www.aspcool.com">www.aspcool.com</a>设计制作.</p>
</body>
</html>

  这个功能和上面的一样,我在这儿就不多说了。

  最后,大家来看一下最负责的一个页面,这个页面的作用就是用来建立新的xml数据。

manage.aspx
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml" %>
<%@ Assembly Name="System.Xml" %>
<%@ Import Namespace="System.IO" %>
<%@ Page Language="C#" Debug="true" codepage="936"%>
<%@ Import Namespace="System"%>
<HTML>
<HEAD>
<script language="C#" runat="server">
public void Button1_Click(object sender, System.EventArgs e)
{
//判断文件是否存在
if(File.Exists(Server.MapPath(TextBox1.Text +".xml")))
{
Response.Write("文件名已经存在,请重选文件名。");
Response.End() ;
}
else
{
XmlNode currNode;
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("contents.xml"));
string InsStr="<topic><title>"+TextBox2.Text+"</title><href>
main.aspx?name="+TextBox1.Text+"</href></topic>";
XmlDocumentFragment docFrag = xmldoc.CreateDocumentFragment();
docFrag.InnerXml = InsStr;
currNode = xmldoc.DocumentElement;
currNode.InsertAfter(docFrag, currNode.LastChild);
//save the output to a file
xmldoc.Save (Server.MapPath("contents.xml"));
//把TextBox5中的文件换成符合xml格式的内容。
string xmlfile =TextBox5.Text.Replace("&","&");
xmlfile = xmlfile.Replace("<","<");
xmlfile = xmlfile.Replace(">",">");
xmlfile = xmlfile.Replace( @"""""",""");
xmlfile = xmlfile.Replace(""","'");
xmlfile = xmlfile.Replace ("\n","</paragraph><paragraph>");
//把数据写入新建的xml文件中去。
XmlDocument doc = new XmlDocument();
doc.LoadXml ("<?xml version="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("You hava input the article!");
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
TextBox5.Text="";
}
//向目录文件中写数据
}
public void Button2_Click(object sender, System.EventArgs e)
{}
</script>
<meta content="Internet Explorer 5.0" name=vs_targetSchema>
<meta content="Microsoft Visual Studio 7.0" name=GENERATOR>
<meta content=C# name=CODE_LANGUAGE>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form runat="server">
<FONT face=宋体>
<asp:label id=Label1 style="Z-INDEX: 100; LEFT: 230px; POSITION:
absolute; TOP: 27px" runat="server" Height="28px" Width="156px">
asp酷技术资讯网网站内容发布系统
</asp:label>
<asp:label id=Label2 style="Z-INDEX: 101; LEFT: 110px; POSITION:
absolute; TOP: 68px" runat="server" Height="25px" Width="65px">
文件名:
</asp:label>
<asp:textbox id=TextBox1 style="Z-INDEX: 102; LEFT: 255px; POSITION:
absolute; TOP: 64px" runat="server" Height="33px" Width="178px" >
</asp:textbox>
<asp:label id=Label3 style="Z-INDEX: 103; LEFT: 108px; POSITION:
absolute; TOP: 126px" runat="server" Height="36px" Width="86px">
文章名称:
</asp:label>
<asp:textbox id=TextBox2 style="Z-INDEX: 104; LEFT: 256px; POSITION:
absolute; TOP: 114px" runat="server" Height="37px" Width="177px">
</asp:textbox>
<asp:label id=Label4 style="Z-INDEX: 105; LEFT: 114px; POSITION:
absolute; TOP: 183px" runat="server" Height="31px" Width="89px">
作者:
</asp:label>
<asp:textbox id=TextBox3 style="Z-INDEX: 106; LEFT: 256px; POSITION:
absolute; TOP: 183px" runat="server" Height="36px" Width="179px">
</asp:textbox>
<asp:label id=Label5 style="Z-INDEX: 107; LEFT: 114px; POSITION:
absolute; TOP: 241px" runat="server" Height="51px" Width="81px">
摘要:
</asp:label>
<asp:textbox id=TextBox4 style="Z-INDEX: 108; LEFT: 256px; POSITION:
absolute; TOP: 245px" runat="server" Height="36px" Width="179px">
</asp:textbox>
<asp:label id=Label6 style="Z-INDEX: 109; LEFT: 116px; POSITION:
absolute; TOP: 315px" runat="server" Height="36px" Width="78px">
内容:
</asp:label>
<asp:textbox id=TextBox5 style="Z-INDEX: 110; LEFT: 259px; POSITION:
absolute; TOP: 303px" runat="server" Height="95px" Width="252px"
textmode="MultiLine">
</asp:textbox>
</FONT>

<INPUT id=Button2 style="Z-INDEX: 113; LEFT: 343px; WIDTH: 40px;
POSITION: absolute; TOP: 430px; HEIGHT: 24px" type=button value=重置
name=Button2 runat="server" OnServerClick="Button2_Click" DESIGNTIMEDRAGDROP="59">
<br>
<br>
<div id=mess runat=server>
</div>
<br>
<input type="button" value="提交" OnServerClick="Button1_Click"
runat="server" ID="Button1" NAME="Button1" style="Z-INDEX: 112;
LEFT: 268px; POSITION: absolute; TOP: 430px">
</form>
</body>
</HTML>

  此程序在.net beta2 build 9148下测试通过。


·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 11.15软件精选 制作MSI文件
  • 闪客五周年之闪客光荣榜
  • 兰欣推出我国第一款网络游戏专用音箱
  • 玩家发现117亡灵种族Bug
  • [配置推荐]极品HIFI配置
  • 东瀛美少女COSPLAY(55)
  • 用Winamp“品尝”无限音乐
  • 迷你型PStwo全面透析专题
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索