温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

DOM模型和LINQ模型有什么区别

发布时间:2021-12-02 09:48:55 来源:亿速云 阅读:111 作者:iii 栏目:编程语言

这篇文章主要介绍“DOM模型和LINQ模型有什么区别”,在日常操作中,相信很多人在DOM模型和LINQ模型有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DOM模型和LINQ模型有什么区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

DOM模型和LINQ模型

我们知道关于XML,W3C有一套DOM模型,C#语言有一套在DOM模型下操作XML的类库。但是在LINQ模型出现以后,微软又重新做了一套关于XML的模型,而且操作起来同那套DOM模型没什么两样,但是更加的简单。

DOM模型和LINQ模型有什么区别

以上是一套新的类库。其中最核心的类就是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模型有什么区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI