首页 > 其他 > 详细

XML基础学习02<linq to xml>

时间:2016-01-14 22:28:43      阅读:220      评论:0      收藏:0      [点我收藏+]

Linq to XML的理解

1:这是一种比较好的操作Xml的工具。

àXDocument 文档

àXElement 元素

àXAttribute 属性

àXText 文本

2:这里还是和我们之前创建xml的形式是一样的,只是这里更为的简单点。

创建xmldocument节点,创建根元素,创建person元素,将person元素添加到根元素下面,在创建id属性这里是键值对形式,创建name,sex元素。并因为他们是对象,可以使用name.Value="阿辉";,通过add方法统一的保存到person元素。

  1. public static void Main(string[] args)
  2. {
  3. ????var doc = new XDocument();
  4. ????//创建根元素
  5. ????var root = new XElement("root");
  6. ????doc.Add(root);
  7. ????var person = new XElement("person");
  8. ????XAttribute xId=new XAttribute("id","003");
  9. ????XElement name=new XElement("name");
  10. ????var sex = new XElement("dex");
  11. ????name.Value = "阿辉";
  12. ????sex.Value = "23";
  13. ????person.Add(xId,name,sex);
  14. ????root.Add(person);
  15. ????doc.Save("ahuiLinq.xml");
  16. }

3:再来一个简单的XML文档的形式。

直接就好像在写LINQ一样,直接就写完了。

  1. static void Main(string[] args)
  2. {
  3. ????new XDocument(
  4. ????????new XElement("root",
  5. ????????????new XElement("person",
  6. ????????????????new XAttribute("id","002"),
  7. ????????????????new XElement("name","ahji"),
  8. ????????????????new XElement("age","23"),
  9. ????????????????new XElement("sex","")
  10. ???????????????????))).Save("ahui02_XML.xml");
  11. }

技术分享

其实这里面的原理和之前我们写的那种形式的是一样的。我们只需要按照之前的顺序写下去就行了。

4:我们可以来好好的感觉下XML的强大之处。

_——》使用xml将数据库中的数据进行临时的保存

  1. var xdoc=new XDocument(new XElement("PersonCollection"));
  2. ?Random random=new Random();
  3. ?//我们可以从文本文件和DB中取到数据,保存到xml文件中。
  4. ?for (int i = 0; i <100; i++)
  5. ?{
  6. ?????xdoc.Root.Add(
  7. ?????????new XElement("Person",
  8. ?????????????new XAttribute("id",i+1),
  9. ?????????????new XElement("name","阿辉"+i),
  10. ?????????????new XElement("age",random.Next(41)),
  11. ?????????????new XElement("sex","男女"[random.Next(2)]))
  12. ?????????);
  13. ?}
  14. ?xdoc.Save("Db中读取的数据.xml");

这里有一个小的知识点,我们发现在最后面那个有个男女的字符,但是后面直接跟了个[]这个是利用随机数是0,1来决定前面字符串中的位置,显示的是男或女。感觉很高端的样子。

  1. new XElement("sex","男女"[random.Next(2)]))

5:直接将字符串转换为xml文档,那么就是在字符串中直接写代码就行了。

  1. ????????????XDocument.Parse(@"
  2. <root>
  3. ????<person id=""004"">
  4. ????????<name>阿辉</name>
  5. ????????<age>23</age>
  6. ????????<sex>男</sex>
  7. ???</person>
  8. </root>
  9. ???????????????????????????????????").Save("stringToXml.xml");

技术分享

这样的做法就比较之前的更加的简单了。

6:当xml文档的内容特别多,且我们需要某个文件的时候就需要使用我们查找的功能,

这里有具体的步骤。

*:加载xml文件

*:查找

*:具体的查找公式,这里的e是节点对象,也是属性,标签,这里主要进行判断。

//var query=xdoc.DescendantNodes().where(e=>{返回bool值得判断条件,其实这里就是写逻辑判断})+xdoc.DescendantNodes()返回全部的节点集合

  1. string path = "Db中读取的数据.xml";
  2. XDocument xdoc = XDocument.Load(path);
  3. var query = xdoc.
  4. ????DescendantNodes().
  5. ????Where(e =>
  6. ????{
  7. ????????//返回Bool值得判断条件,e是节点对象,有属性,标签,
  8. ????????XElement els = e as XElement;
  9. ????????if (els == null) return false;
  10. ????????XElement age = els.Element("age");
  11. ????????XElement sex = els.Element("");
  12. ????????if(age !=null && sex !=null)
  13. ????????{
  14. ????????????int numAge = Convert.ToInt32(age.Value);
  15. ????????????if (numAge >= 20 && numAge <= 25)
  16. ????????????{
  17. ????????????????return true;
  18. ????????????}
  19. ????????????else
  20. ????????????{
  21. ????????????????return false;
  22. ????????????}
  23. ????????}
  24. ????????else
  25. ????????{
  26. ????????????return false;
  27. ????????}
  28. ????});
  29. XElement root=new XElement("root");
  30. //这里遍历得到的数据就是XElement数据。
  31. foreach (XElement item in query)
  32. {
  33. ????root.Add(item);
  34. }
  35. new XDocument(root).Save("Search.xml");

XML基础学习02<linq to xml>

原文:http://www.cnblogs.com/netxiaohui/p/5131726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!