iT邦幫忙

DAY 18
1

從零開始開發Web應用程式系列 第 18

Web應用程式開發-建立XML

  • 分享至 

  • xImage
  •  

前幾個單元談到XML的使用,及重要性,因此這個單元是要介紹以ASP.NET產生一個XML
用到的namespace為 System.Xml
建立的方式有CreateElement和CreateNode,一個是建立有形態的結點,另一個是建立通用的結點,然後再指定型態

首先是CreateElement的方式
XmlDocument doc = new XmlDocument();
XmlDeclaration xd = doc.CreateXmlDeclaration("1.0", "utf-8", "");
doc.AppendChild(xd);

XmlElement xeBooks = doc.CreateElement("Books");
doc.AppendChild(xeBooks);

//doc.CreateElement
XmlElement xeBook1 = doc.CreateElement("Book1");
XmlAttribute xaBook1Amount = doc.CreateAttribute("Book1Amount");
xaBook1Amount.Value = "5";
xeBook1.Attributes.Append(xaBook1Amount);
xeBooks.AppendChild(xeBook1);

XmlElement xeBook1Author = doc.CreateElement("Book1Author");
xeBook1Author.InnerText = "mark";
xeBook1.AppendChild(xeBook1Author);

XmlElement xeBook1Price = doc.CreateElement("Book1Price");
xeBook1Price.InnerText = "$3000";
xeBook1.AppendChild(xeBook1Price);

也可使用CreateNode的方式
XmlNode xnBook3 = doc.CreateNode(XmlNodeType.Element, "Book3", "");
XmlNode xaBook3Amount = doc.CreateNode(XmlNodeType.Attribute, "Book3Amount", ""); //XmlNodeType.Attribute
xaBook3Amount.Value = "105";
xnBook3.Attributes.SetNamedItem(xaBook3Amount);
xeBooks.AppendChild(xnBook3);

XmlNode xnBook3Author = doc.CreateNode(XmlNodeType.Element, "Book3Author","");
XmlNode xnCds = doc.CreateNode(XmlNodeType.CDATA, "", ""); //XmlNodeType.CDATA
xnCds.Value = "jesscia & mark";
xnBook3Author.AppendChild(xnCds);
xnBook3.AppendChild(xnBook3Author);

XmlNode xnBook3Price = doc.CreateNode(XmlNodeType.Element, "Book3Price", "");
xnBook3Price.InnerText = "$880";
XmlNode xnCmt = doc.CreateNode(XmlNodeType.Comment, "", ""); //XmlNodeType.Comment
xnCmt.Value = "on sale";
xnBook3Price.AppendChild(xnCmt);
xnBook3.AppendChild(xnBook3Price);

最後無論用何種方式建立,都可存成xml檔案
doc.Save(...);

這在不同的系統間交換資料是常用的功能,傳入一個xml文件,處理後再回傳一個結果xml,而結果的xml可用DataSet的ReadXml,將資料呈現在UI上

配合前幾個單元說的Web Service或WCF 更是一個好的搭配,就是傳入一個XML,呼叫WCF,而WCF處理後再將結果無論是對資料庫的異動筆數或是資料集,再回傳給呼叫端,這樣的好處是XML格式是共通的標準,因此無論是JAVA或是其他語言或平台,有可能彼此間不認識對方的資料型別,如DataSet只有.net才有的,但若是傳入傳出都是以xml的標準格式來交換,就沒這樣的問題了.


上一篇
Web應用程式開發-XML
下一篇
Web應用程式開發-ADO.NET
系列文
從零開始開發Web應用程式30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言