|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库)dom|rss|xml网站的RSS一样平常以两种情势援用。一种是已存在的xml文件,然后在更新数据库的时分对其举行更新,大概利用别的保护程序为其更新。另外一种是在静态天生RSS文件,即在会见某一个地点的时分,服务端办法从数据库读取最新纪录,天生RSS文件,前往给会见者。
现报告静态天生RSS文件的办法。
静态天生RSS文件也基础有两种办法,一种是用字符串累加的办法,另外一种是利用xml文档天生的办法。字符串累加的办法也对照复杂,我也就未几说了,这里侧重说一下天生XmlDocument的办法,包含各类节点的创立,属性的创立等。固然在此也有需要申明一下为何接纳后者,由于后者切合XMLDOM尺度,有益于你熟悉dom模子,而且机关速率更快,机关出的xml文档更不简单堕落,个中有一些细节我也会做一些需要的报告。
主办法以下:
privatevoidWriteRSS()
{
XmlDocumentdomDoc=newXmlDocument();
XmlDeclarationnodeDeclar=domDoc.CreateXmlDeclaration("1.0",System.Text.Encoding.UTF8.BodyName,"yes");
domDoc.AppendChild(nodeDeclar);
//假如rss有款式表文件的话,加上这两句
XmlProcessingInstructionnodeStylesheet=domDoc.CreateProcessingInstruction("xml-stylesheet","type="text/CSS"href="rss.css"");
domDoc.AppendChild(nodeStylesheet);
XmlElementroot=domDoc.CreateElement("rss");
root.SetAttribute("version","2.0");//增加属性结点
domDoc.AppendChild(root);
XmlElementchnode=domDoc.CreateElement("channel");
root.AppendChild(chnode);
XmlElementelement=domDoc.CreateElement("title");
XmlNodetextNode=domDoc.CreateTextNode("搜狐核心旧事");//文本结点
element.AppendChild(textNode);
chnode.AppendChild(element);
element=domDoc.CreateElement("link");
textNode=domDoc.CreateTextNode("http://www.sohu.com");
element.AppendChild(textNode);
chnode.AppendChild(element);
element=domDoc.CreateElement("description");//援用结点
XmlNodecDataNode=domDoc.CreateCDataSection("立即报导国际外时政年夜事,解读举世核心事务");
element.AppendChild(cDataNode);
chnode.AppendChild(element);
DataTabledt=GetDataTab();//会见数据库,猎取要在rss中显现的纪录
foreach(DataRowdrindt.Rows)
{
element=domDoc.CreateElement("item");
//...
//创立内容结点,罕见的如title,description,link,pubDate,创立办法同上
//...
chnode.AppendChild(element);
}
//输入
XmlTextWriterobjTextWrite=newXmlTextWriter(this.Response.OutputStream,System.Text.Encoding.UTF8);
domDoc.WriteTo(objTextWrite);
objTextWrite.Flush();
objTextWrite.Close();
}
输入了局以下(item部分是为申明实例手工增加):
<?xmlversion="1.0"encoding="utf-8"?>
<rssversion="2.0">
<channel>
<title>搜狐核心旧事</title>
<link>http://www.sohu.com</link>
<description>
<![CDATA[立即报导国际外时政年夜事,解读举世核心事务
]]>
</description>
<itemid="">
<title></title>
<link></link>
<pubDate>2006-10-1521:59:36</pubDate>
</item>
<itemid="">
<title></title>
<link></link>
<pubDate>2006-10-1510:33:53</pubDate>
</item>
<title>[中介][出卖室庐]明发国际新城3房2厅2卫93万元/套</title>
<link>http://www.ewhouse.com/HouseInfo.aspx?publishId=3440</link>
<pubDate>2006-10-1210:50:18</pubDate>
</item>
</channel>
</rss>
有几点值得申明的有:
1、CreateTextNode,即创立文本结点
有人习气利用InnerText来增加结点中的文本,固然了局是一样的,可是要晓得在DOM中文本也是结点,既然要切合DOM尺度,就要举行究竟!
2、输入
我在实例中利用XmlTextWriter输入。
实践还可使用以下:
Response.ContentType="application/xml";//输入并按xml数据显现
Response.Write(domDoc.InnerXml);
可是,利用XmlTextWriter输入更快,以是也倡议利用这个办法。
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。 |
|