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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、XML明確節(jié)點(diǎn)層次關(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é)點(diǎn)獲取當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)當(dāng)前節(jié)點(diǎn)的值當(dāng)前節(jié)點(diǎn)名字演

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

5、化頻道集合FullChannel明確XML節(jié)點(diǎn)層次關(guān)系 .1、獲取根2、獲取根下節(jié)點(diǎn)集合3、遍歷集合,獲取下一級(jí)節(jié)點(diǎn)的值解析獲取所有電視頻道2-2fullChannel.Clear();XmlDocument xmlDoc = new XmlDocument();xmlDoc.Load(channelPath);XmlElement xmlRoot = xmlDoc.DocumentElement;foreach (XmlNode node in xmlRoot.ChildNodes) /通過(guò)簡(jiǎn)單工廠,根據(jù)頻道類型創(chuàng)建對(duì)象 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é)點(diǎn)集合3、獲取下一級(jí)節(jié)點(diǎn)對(duì)象的值由節(jié)點(diǎn)名稱查找節(jié)點(diǎn)對(duì)象演示示例:解析獲得頻道信息頻道名稱頻道對(duì)象練習(xí)獲取所有電視頻道需求說(shuō)明解析FullChannels.xml文件,并初始化頻道集合遍歷集合,輸出頻道名稱和頻道節(jié)目單本地

7、路徑 .完成時(shí)間:20分鐘共性問(wèn)題集中講解常見(jiàn)調(diào)試問(wèn)題及解決辦法代碼規(guī)范問(wèn)題共性問(wèn)題集中講解練習(xí)解析頻道節(jié)目單訓(xùn)練要點(diǎn)XML文件解析需求說(shuō)明北京電視臺(tái)節(jié)目單格式為TypeA類型鳳凰衛(wèi)視電視臺(tái)節(jié)目單格式為TypeB類型編寫(xiě)節(jié)目單類Fetch()方法,解析不同格式節(jié)目單指導(dǎo)解析所有電視頻道難點(diǎn)分析解析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); 完成時(shí)間:30分鐘TreeView控件顯示電視頻道網(wǎng)絡(luò)電視精靈中顯示電視頻道使用TreeView顯示解析XML文檔獲取的“所有電視臺(tái)”列表選中某電視臺(tái)節(jié)點(diǎn),DataGridView控件中顯示節(jié)目單TreeVi

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

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

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

12、odeFirstLevel = new TreeNode(我的電視臺(tái));nodeFirstLevel.ImageIndex = 0;this.tvChannel.Nodes.Add(nodeFirstLevel);nodeFirstLevel = new TreeNode(所有電視臺(tái));this.tvChannel.Nodes.Add(nodeFirstLevel);/加載“所有電視臺(tái)”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é)點(diǎn)結(jié)合添加節(jié)點(diǎn)遍歷頻道對(duì)象集合設(shè)置節(jié)點(diǎn)顯示名稱Tag屬性設(shè)置為頻道對(duì)象獲取根結(jié)點(diǎn)中索引為1的節(jié)點(diǎn)對(duì)象演示示例:顯示我的電視臺(tái)所有頻道練習(xí)顯示所有頻道訓(xùn)練技能TreeView控件動(dòng)態(tài)綁定數(shù)據(jù)需求說(shuō)明顯示樹(shù)形菜單中“我的電視臺(tái)”下所有頻道列表完成時(shí)間:20分鐘共性問(wèn)題集中講解常見(jiàn)調(diào)試問(wèn)題及解決辦法代碼規(guī)范問(wèn)題共性問(wèn)題集中講解指導(dǎo)定制頻道訓(xùn)練要點(diǎn)TreeView控件需求說(shuō)明實(shí)現(xiàn)定制我

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論