accp6.0s2階段深入.net平臺和編程_第1頁
accp6.0s2階段深入.net平臺和編程_第2頁
accp6.0s2階段深入.net平臺和編程_第3頁
accp6.0s2階段深入.net平臺和編程_第4頁
accp6.0s2階段深入.net平臺和編程_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第十章可擴展性標(biāo)記語言:XML回顧與作業(yè)點評簡單工廠設(shè)計模式主要解決的問題?說出工廠類中創(chuàng)建對象方法的參數(shù)和返回值?使用TreeView控件時,如何獲取當(dāng)前選中節(jié)點的名稱?預(yù)習(xí)檢查XML稱為什么語言?XML區(qū)分大小寫嗎?本章任務(wù)實現(xiàn)“網(wǎng)絡(luò)電視精靈”展示所有電視臺頻道展示頻道節(jié)目清單定制“我的電視臺”會編寫XML文件會讀取XML文件的元素會使用TreeView創(chuàng)建動態(tài)樹型菜單本章目標(biāo)“網(wǎng)絡(luò)電視精靈”工作原理通過讀取文件,加載頻道名稱及節(jié)目單保存全部頻道FullChannels.xml保存某電視臺節(jié)目單北京電視臺.xml鳳凰衛(wèi)視.xmlXML文件存儲頻道列表你能讀懂文件保存的是什么嗎?TypeA

2、北京電視臺 files/北京電視臺.xml TypeB鳳凰衛(wèi)視files/鳳凰衛(wèi)視.xmlXML文件XML概述可擴展性標(biāo)記語言XML用于描述數(shù)據(jù)XML用途廣泛 1002 張靚 20 1001 周杰 22節(jié)點成對出現(xiàn)eXtensible Markup Language 節(jié)點可自由擴展:加入性別或者身高節(jié)點區(qū)分大小寫 描述的內(nèi)容 一目了然 XML描述不同格式頻道節(jié)目單 . 根節(jié)點 表示頻道節(jié)目單格式 版本1.0注釋的方法子節(jié)點 . 不同頻道的節(jié)目單XML格式不同,此項目定義TypeA和TypeB兩種! 另一種格式的頻道節(jié)目單讀取XML文件2-1 1002 張靚 20 1001 周杰 22需要讀取的

3、XML明確節(jié)點層次關(guān)系,使用for遍歷解析讀取XML文件2-2XmlDocument myXml = new XmlDocument();myXml.Load(“Engineer.xml);XmlNode engineer = myXml.DocumentElement;foreach (XmlNode node in engineer.ChildNodes ) switch (node.Name) case Name: Console.WriteLine(姓名:0,node.InnerText); break; 加載指定的XML數(shù)據(jù)獲取根節(jié)點獲取當(dāng)前節(jié)點的所有子節(jié)點當(dāng)前節(jié)點的值當(dāng)前節(jié)點名字演

4、示示例:編寫XML文件并解析用于解析XML文件的類由上而下,逐行解析XML關(guān)鍵對象XmlDocument對象表示XML整個文檔XmlNode對象表示XML文件的單個節(jié)點對象屬性和方法說明XmlDocumentDocumentElement 屬性獲取文檔的根ChildNodes 屬性獲取節(jié)點的所有子節(jié)點Load()方法加載整個XML的結(jié)構(gòu)XmlNodeInnerText 屬性當(dāng)前節(jié)點的值Name屬性當(dāng)前節(jié)點的名字ChildNodes 屬性當(dāng)前節(jié)點的所有子節(jié)點所有子節(jié)點組成的集合解析獲取所有電視頻道2-1解析FullChannels.xml文件獲取頻道信息,初始化頻道集合窗體加載時,解析文件并初始

5、化頻道集合FullChannel明確XML節(jié)點層次關(guān)系 .1、獲取根2、獲取根下節(jié)點集合3、遍歷集合,獲取下一級節(jié)點的值解析獲取所有電視頻道2-2fullChannel.Clear();XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(channelPath);XmlElement xmlRoot = xmlDoc.DocumentElement;foreach (XmlNode node in xmlRoot.ChildNodes) /通過簡單工廠,根據(jù)頻道類型創(chuàng)建對象 ChannelBase channel = ChannelFactor

6、y.CreateChannel (nodechannelType.InnerText); channel.ChannelName = nodetvChannel.InnerText; channel.Path = nodepath.InnerText; this.fullChannel.Add(channel.ChannelName, channel);1、獲取根2、獲取根下節(jié)點集合3、獲取下一級節(jié)點對象的值由節(jié)點名稱查找節(jié)點對象演示示例:解析獲得頻道信息頻道名稱頻道對象練習(xí)獲取所有電視頻道需求說明解析FullChannels.xml文件,并初始化頻道集合遍歷集合,輸出頻道名稱和頻道節(jié)目單本地

7、路徑 .完成時間:20分鐘共性問題集中講解常見調(diào)試問題及解決辦法代碼規(guī)范問題共性問題集中講解練習(xí)解析頻道節(jié)目單訓(xùn)練要點XML文件解析需求說明北京電視臺節(jié)目單格式為TypeA類型鳳凰衛(wèi)視電視臺節(jié)目單格式為TypeB類型編寫節(jié)目單類Fetch()方法,解析不同格式節(jié)目單指導(dǎo)解析所有電視頻道難點分析解析TypeA類型節(jié)目單 . XmlElement elem = xmlDoc.DocumentElement;foreach (XmlNode node in elem.ChildNodes) if (node.Name = tvProgramTable) foreach (XmlNode subnod

8、e in node.ChildNodes) TvProgram program = new TvProgram(); program.PlayTime = DateTime.Parse(subnodeplayTime.InnerText); program.Median = subnodemeridien.InnerText; this.ProgramList.Add(program); 完成時間:30分鐘TreeView控件顯示電視頻道網(wǎng)絡(luò)電視精靈中顯示電視頻道使用TreeView顯示解析XML文檔獲取的“所有電視臺”列表選中某電視臺節(jié)點,DataGridView控件中顯示節(jié)目單TreeVi

9、ew動態(tài)綁定信息使用TreeView控件創(chuàng)建樹形菜單,實現(xiàn)單擊子節(jié)點,文本框中顯示相應(yīng)節(jié)點文本 單擊“添加根節(jié)點”,在TreeView中添加一個根節(jié)點選中某節(jié)點,單擊“添加子節(jié)點”,在選中節(jié)點下添加子節(jié)點根節(jié)點子節(jié)點組成子節(jié)點集合TreeView的使用2-1TreeView 控件重要屬性和事件屬性說明NodesTreeView控件中的所有樹節(jié)點SelectedNode當(dāng)前TreeView控件中選定的樹節(jié)點,如果當(dāng)前沒有選定樹節(jié)點,返回值為null事件說明AfterSelect選定樹節(jié)點之后發(fā)生TreeView的使用2-2節(jié)點對象(TreeNode)的屬性屬性說明Text節(jié)點顯示的文本 Inde

10、x節(jié)點在所在集合中的索引 Parent節(jié)點的父節(jié)點(TreeNode) Level節(jié)點在樹形菜單中的層級0、1.Tag節(jié)點值Nodes節(jié)點的所有下一級子節(jié)點 TreeView的應(yīng)用獲取當(dāng)前選中的節(jié)點this.tvMenu.SelectedNode返回TreeNode對象為TreeView控件添加根節(jié)點(一級節(jié)點)為某選中節(jié)點添加子節(jié)點TreeNode rootNode = new TreeNode(音樂頻道);this.tvMenu.Nodes.Add(rootNode); TreeNode rootNode;rootNode = this.tvMenu.Nodes.Add(音樂頻道); th

11、is.tvMenu.SelectedNode.Nodes.Add(node);演示示例:TreeView添加節(jié)點TreeView節(jié)點刪除實現(xiàn)TreeView節(jié)點刪除和清空TreeView的應(yīng)用刪除節(jié)點清空節(jié)點this.tvMenu.SelectedNode.Remove();this.tvMenu.SelectedNode.Nodes.Clear();this.tvMenu.Nodes.Clear(); /清空TreeView控件中所有節(jié)點演示示例:TreeView刪除節(jié)點經(jīng)常用在刷新TreeView顯示前TreeView顯示所有頻道顯示所有頻道/清空所有節(jié)點/初始化根結(jié)點TreeNode n

12、odeFirstLevel = new TreeNode(我的電視臺);nodeFirstLevel.ImageIndex = 0;this.tvChannel.Nodes.Add(nodeFirstLevel);nodeFirstLevel = new TreeNode(所有電視臺);this.tvChannel.Nodes.Add(nodeFirstLevel);/加載“所有電視臺”foreach (ChannelBase dicOne in myManager.FullChannel.Values) TreeNode node = new TreeNode(); node.Text =

13、dicOne.ChannelName; node.Tag = dicOne; node.ImageIndex = 1; this.tvChannel.Nodes1.Nodes.Add(node);Upate()方法向根結(jié)點結(jié)合添加節(jié)點遍歷頻道對象集合設(shè)置節(jié)點顯示名稱Tag屬性設(shè)置為頻道對象獲取根結(jié)點中索引為1的節(jié)點對象演示示例:顯示我的電視臺所有頻道練習(xí)顯示所有頻道訓(xùn)練技能TreeView控件動態(tài)綁定數(shù)據(jù)需求說明顯示樹形菜單中“我的電視臺”下所有頻道列表完成時間:20分鐘共性問題集中講解常見調(diào)試問題及解決辦法代碼規(guī)范問題共性問題集中講解指導(dǎo)定制頻道訓(xùn)練要點TreeView控件需求說明實現(xiàn)定制我

14、的頻道:右鍵選擇頻道,單擊“添加”,添加到“我的電視臺”節(jié)點“所有電視臺”節(jié)點只允許“添加”操作“我的電視臺”節(jié)點只允許“刪除”操作指導(dǎo)定制頻道實現(xiàn)思路右鍵菜單“添加”事件獲取選中節(jié)點,根據(jù)Tag屬性獲對應(yīng)頻道對象遍歷“我的電視臺”,查看是否已定制將定制的頻道對象添加到MyFavor集合刷新TreeView顯示修改UpdateTreeView()方法,添加遍歷“我的電視臺”集合對象并加載信息編寫TreeView控件MouseClick事件,控制右鍵菜單顯示難點分析選擇性顯示右鍵菜單項cmenuRight.Items1.Visible = false;完成時間:30分鐘練習(xí)顯示節(jié)目單需求說明單擊電視臺頻道節(jié)點,DataGridView顯示頻道對應(yīng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論