最近在一个叫【网逻】的好地方,看到了这篇文章不错,与大家分享!现转载如下:这里我就用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有了进一步的认识。 
 
 
 
 
   【回贴】 [原创]  续:用ASP.NET和XML做的新闻系统 作者:小猪哥    查看:0 回复:0    
 
  [第 7 楼]  发表于4/13/2005 21:2:56下面是新闻内容显示的页面: 
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"> 
 
 
 
 
   【回贴】 [原创]  回复:用ASP.NET和XML做的新闻系统 作者:小猪哥    查看:0 回复:0    
 
  [第 6 楼]  发表于4/13/2005 21:5:23public 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(""","&apos;"); 
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=""; 

//向目录文件中写数据 

 
 
 由于界面的限制未完,大家可以自己去看看http://www.weblogic.com.cn还有不少好东东呢^_^ 

解决方案 »

  1.   

    xml安全性问题你们是怎么解决的啊
    xml的数据内容全部都是可以看到的。
      

  2.   

    超了那么多东西,我只看了第一段,后边是在没看。根据我当年的经验来说,XML是不能直接用来写所谓新闻系统的。这是炒作。道理很简单。新闻系统不是只有后台文章,还有前台表现。XML只是一个替换数据库的备选方法,在数据量少大时根本无法检索。如果仅仅是把它作为后台数据库到前台script之间的传递手段,在.net里边已经已经说得很清楚了,控件(中间件)思路才是界面发展的较为综合的手段(打开aspx或者 ascx和所谓的“纯”xml比较一下)。再好的技术,如果仅仅是一个底层的平台(总不能把新闻广播看成一串电波的随机无序广播吧),看不到高层需要进一步表现更为复杂的结构,就是空洞无物,成事不足的。
      

  3.   

    不能把 XML 当作 .net框架。同样,不能拿一个可以用的通讯协议(组件在不改变应用接口的情况下可以使用多种协议以及序列化方法)当作应用本身。单独看XML,它什么也不是。除非你有一整套高级的新闻系统已经完成。只有拿出好的结果,才能制定标准,光有理念是不行的。
      

  4.   

    炸翻了也是那样。我还可以定义gml哦[GML Verion="1.0"]
    .............
    [/GML]
    hehe
      

  5.   

    古老的东西了,DocumentNavigator现在已经没有了