您好,登錄后才能下訂單哦!
這篇文章主要介紹“DOM模型和LINQ模型有什么區別”,在日常操作中,相信很多人在DOM模型和LINQ模型有什么區別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”DOM模型和LINQ模型有什么區別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
DOM模型和LINQ模型
我們知道關于XML,W3C有一套DOM模型,C#語言有一套在DOM模型下操作XML的類庫。但是在LINQ模型出現以后,微軟又重新做了一套關于XML的模型,而且操作起來同那套DOM模型沒什么兩樣,但是更加的簡單。
以上是一套新的類庫。其中最核心的類就是XElement,不要看它的層次低,但是絕對是核心。還有一些其他特性與DOM模型不一樣,其中之一就是XAttribute和XNode在同一個層次上,還有就是XDocument不再是必須的。其他不同點可以參考DOM模型自己比較。
下面用代碼對比一下DOM模型和LINQ模型操作XML的區別:
//DOM模型 XmlDocument doc = new XmlDocument(); XmlElement name = doc.CreateElement("name"); name.InnerText = "Patrick Hines"; XmlElement phone1 = doc.CreateElement("phone"); phone1.SetAttribute("type", "home"); phone1.InnerText = "206-555-0144"; XmlElement phone2 = doc.CreateElement("phone"); phone2.SetAttribute("type", "work"); phone2.InnerText = "425-555-0145"; XmlElement street1 = doc.CreateElement("street1"); street1.InnerText = "123 Main St"; XmlElement city = doc.CreateElement("city"); city.InnerText = "Mercer Island"; XmlElement state = doc.CreateElement("state"); state.InnerText = "WA"; XmlElement postal = doc.CreateElement("postal"); postal.InnerText = "68042"; XmlElement address = doc.CreateElement("address"); address.AppendChild(street1); address.AppendChild(city); address.AppendChild(state); address.AppendChild(postal); XmlElement contact = doc.CreateElement("contact"); contact.AppendChild(name); contact.AppendChild(phone1); contact.AppendChild(phone2); contact.AppendChild(address); XmlElement contacts = doc.CreateElement("contacts"); contacts.AppendChild(contact); doc.AppendChild(contacts);
//LINQ模型 XElement contacts = new XElement("contacts", new XElement("contact", new XElement("name", "Patrick Hines"), new XElement("phone", "206-555-0144", new XAttribute("type", "home")), new XElement("phone", "425-555-0145", new XAttribute("type", "work")), new XElement("address", new XElement("street1", "123 Main St"), new XElement("city", "Mercer Island"), new XElement("state", "WA"), new XElement("postal", "68042") ) ) );
這里只是很簡單的演示一些操作,至于那些復雜的操作,只要DOM模型能實現的LINQ模型就一定能實現。插入的時候還可以使用AddAfterThis和AddBeforeThis等方法,提高效率。
到此,關于“DOM模型和LINQ模型有什么區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。