摘要:介紹了XML的主要特點。介紹了利用XML特點創建簡單留言的c#程序設計,通過實例重點介紹了其設計方法及應用情況。
關鍵詞:C#;XML;程序;設計
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2008)32-1135-02
XML Language Used to Create a Simple Message of the Program Design in C#
YANG Miao-qi, YU Ge-wu, JIA Dong-mei
(Information Technology Department of CPAPF, Tianjin 300162, China)
Abstract: In this paper the features ofXML. Introduced using XML features a simple message of the program design in C#, through examples of its focus on the design method and applications.
Key words: C#; XML; program; design
目前隨著電子商務的快速發展,很多企業制作靜態網頁,通過網絡這一窗口宣傳自己的形象、提高自己的知名度和信任度。這種靜態網頁由于開發成本低,發布占用空間小,受到了大多數企業的歡迎,發展十分迅猛。但隨著企業形象在網絡上的進一步發展,很多產品銷售企業在發布網頁時也希望有一定的交互功能,達到類似動態網站的效果,其目的是與購買商實現簡單的互動,能達到相互交流信息的目的。本文在此通過實例介紹一種利用XML語言在C#.net編程語言環境下創建簡單留言的程序設計,實現簡單留言的目的。
1 靜態網頁和動態網頁的區別
我們平時所說的靜態網頁和動態網頁是有區別的。靜態網頁是相對于動態網頁而言,是指沒有后臺數據庫、不含程序和不可交互的網頁。你編的是什么它顯示的就是什么、不會有任何改變。靜態網頁相對更新起來比較麻煩,適用于一般更新較少的展示型網站。專業上講靜態網頁使用語言:HTML(超文本標記語言) ,動態網頁使用語言:HTML+ASP或HTML+PHP或HTML+JSP等。靜態網頁和動態網頁各有特點,網站采用動態網頁還是靜態網頁主要取決于網站的功能需求和網站內容的多少,如果網站功能比較簡單,內容更新量不是很大,采用純靜態網頁的方式會更簡單,反之一般要采用動態網頁技術來實現。
我們企業在開始做宣傳網站時往往都選擇的是靜態網頁。因為他們的內容更新不是很頻繁,加上是宣傳性質用不到數據庫技術,因此基本選用的是靜態網頁。但這種網站在一定程度上缺少交互的功能,達不到讓用戶留言的目的,因此很多產品生產企業希望能在此靜態網站基礎上實現交互的功能,達到動靜結合。
2 XML語言介紹
XML是Extensible Markup Language的縮寫。擴展標記語言XML是一種簡單的數據存儲語言,使用一系列簡單的標記描述數據,而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數據要占用更多的空間,但XML極其簡單易于掌握和使用。 XML的簡單使其易于在任何應用程序中讀寫數據,這使XML很快成為數據交換的唯一公共語言。XML與Access,Oracle和SQL Server等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,XML僅僅是展示數據。事實上XML與其他數據表現形式最大的不同是:它極其簡單。這是一個看上去有點瑣細的優點,但正是這點使XML與眾不同,也使得我們使用它在靜態網頁中建立簡單留言提供了技術支持,我們可以不使用數據庫,而是使用xml這種擴展標記語言,將留言通過建立xml文件標記下來,然后通過HTML以一定格式顯示出來。XML最大的優勢在于對各種數據的管理。任何系統都可以通過XML的解析器來讀取XML數據,因此它的數據可以通行各處,而不用擔心系統不支持的問題。
3 程序設計及實現
此程序是為天津傲綠神農有限科技公司開發的一個網站中用到的留言程序,考慮到企業是個產品銷售企業,為了方便客戶通過國際互連網給公司留言,我們在靜態網站的基礎上設計了此留言版,其目的是能及時收到客戶的意向性產品需求,也同時方便我們的產品銷售人員在第一時間與客戶聯系。整個版面分兩個部分,一個是用戶網上訂貨,另一個是管理員查看訂單。網站留言用戶網上訂單界面如圖1所示,管理員查看訂單如圖2所示。
3.1 建立并存儲的xml源文件(在網上管理員查看訂單顯示界面中)
文件名字:UserControl.xml
文件存放位置:\\aoluweb\\uiaolu\\UserControl.xml
文件內容:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<Roles>
<Role uniqueid=\"1\">
<txt txt=\"李四\" />
<txt txt=\"銷售員\" />
<txt txt=\"天津武清縣農場\" />
<txt txt=\"天津武清縣\" />
<txt txt=\"2346689\" />
<txt txt=\"2345678\" />
<txt txt=\"300001\" />
<txt txt=\"sdg@sina.com.cn\" />
<txt txt=\"需要公路運輸,肥水素:43袋\" />
<txt txt=\"2006-10-27\" />
</Role>
<Role uniqueid=\"2\">
<txt txt=\"張三\" />
<txt txt=\"總經理\" />
<txt txt=\"內蒙古經濟合作公司\" />
<txt txt=\"內蒙古齊齊哈爾市\" />
<txt txt=\"23856798\" />
<txt txt=\"23457789\" />
<txt txt=\"430012\" />
<txt txt=\"sdf@163.com\" />
<txt txt=\"需要鐵路運輸,廣譜型:3000袋\" />
<txt txt=\"2008-05-25\" />
</Role>
</Roles>
3.2 C#建立xml并添加記錄到UserControl.xml中的源程序(對應“發送”按鈕)
using System;
using System.Xml.Xsl;
using System.Xml;
using System.Xml.XPath;
protected string[] myList =new string[10];
private void btn_sent_Click(object sender, System.EventArgs e)
{ int uniqueid = 0;//用于記錄留言條數
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(\"/uiaolu/UserControl.xml\");
XmlNode root = xmlDoc.SelectSingleNode(\"Roles\");
XmlNodeList xnl = root.ChildNodes;
foreach(XmlNode xnf in xnl)
{XmlElement objxe = (XmlElement)xnf;
uniqueid=(int)Math.Max((decimal)uniqueid,Convert.ToDecimal(objxe.GetAttribute(\"uniqueid\")));}
XmlElement xe1 = xmlDoc.CreateElement(\"Role\");
xe1.SetAttribute(\"uniqueid\",Convert.ToString(++uniqueid));
myList[0] = tb_xm.Text.Trim().ToString();//姓名
myList[1] = ddlzw.SelectedValue.ToString().Trim();//你的職務
……
myList[9] =System.DateTime.Now.ToString(\"yyyy-MM-dd\");//訂單時間
for(int i=0;i<10;i++)
{XmlElement xesub2 = xmlDoc.CreateElement(\"txt\");
xesub2.SetAttribute(\"txt\",myList[i].ToString());
xe1.AppendChild(xesub2);}
root.AppendChild(xe1);
xmlDoc.Save(\"/uiaolu/UserControl.xml\");建立并存儲記錄到UserControl.xml中
scriptString=\"alert('訂貨發送成功!繼續訂貨請點擊“重置”!')</script>\";
if(!this.IsStartupScriptRegistered(\"Startup\")) this.RegisterStartupScript(\"Startup\", scriptString);}
3.3 C#讀取XML操作UserControl.xml中記錄并顯示的源程序
private void LoadRole()
{tbFiles.Rows.Clear();
TableRow trTitles=new TableRow();
TableCell tcTitlexz=new TableCell();
tcTitlexz.Text=\"選擇\";
trTitles.Controls.Add(tcTitlexz);
TableCell tcTitlexm=new TableCell();
tcTitlexm.Text=\"您的姓名\";
trTitles.Controls.Add(tcTitlexm);
……
TableCell tcTitlesj=new TableCell();
tcTitlesj.Text=\"訂單時間\";
trTitles.Controls.Add(tcTitlesj);
tbFiles.Controls.Add(trTitles);
CheckBox cbDelItem;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(\"/uiaolu/UserControl.xml\");//取出UserControl.xml中的記錄
XmlNode xn = xmlDoc.SelectSingleNode(\"Roles\");
XmlNodeList xnl = xn.ChildNodes;
foreach(XmlNode xnf in xnl)
{XmlElement xe = (XmlElement)xnf;
int uniqueid=int.Parse(xe.GetAttribute(\"uniqueid\"));
TableRow tr=newTableRow();
TableCell tcCbDel=new TableCell();
cbDelItem=new CheckBox();
cbDelItem.Text=uniqueid.ToString();
tcCbDel.Controls.Add(cbDelItem);
tr.Controls.Add(tcCbDel);
if(xe.GetAttribute(\"uniqueid\") == uniqueid.ToString())
{
XmlNodeList xnl2 = xe.ChildNodes;
foreach(XmlNode xnf2 in xnl2)
{
XmlElement xe2 = (XmlElement)xnf2;
TableCell tcxm=new TableCell();
tcxm.Text=xe2.GetAttribute(\"txt\");
tcxm.Wrap=true;
tr.Controls.Add(tcxm);}}
tbFiles.Controls.Add(tr);
tbFiles.EnableViewState=true;}}
4 結語
本人在此只是通過XML擴展標記語言,使用C#語言編程實現了一種制作簡單留言的方式。當然利用其它語言,如VB.net,Java等采用其它方式也可以實現這種靜態網站的交互功能,作者也是通過介紹這種方式起到一個拋磚引玉的目的。相信隨著企業電子商務的迅猛發展,通過簡單的方式,在不增加其投入成本的前提下,利用XML語言將交互方式應用于企業的宣傳網站是切實可行的。
參考文獻:
[1] 華銓平.XML語言及應用[M].北京:北京交通大學出版社,2005:13-15.
[2] 許勁松,周斌,楊波,等.XML基礎教程[M].北京:人民郵電出版社,2007:23-26.