温馨提示×

温馨提示×

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

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

LINQ to XML的文档类型有哪些

发布时间:2021-12-01 16:09:10 阅读:155 作者:iii 栏目:编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要讲解了“LINQ to XML的文档类型有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“LINQ to XML的文档类型有哪些”吧!

LINQ to XML可以看作是一个 “better DOM” 编程模型,可以和 System.Xml.dll 程序集中的很多成员交互。

一、命名空间

System.Xml.Linq.dll 程序集定义了三个命名空间:System.Xml.Linq, System.Xml.Schema  和 System.Xml.XPath

最核心的是 System.Xml.Linq, 定义了对应 XML 文档个方面的很多类型

LINQ to XML的文档类型有哪些 
定义XML文档类型

二、编程方式创建XML文档

以前的 .NET XML编程模型需要使用很多冗长的 DOM API,而 LINQ to XML 则完全可以用与 DOM 无关的方式与 XML 文档交互。这样不但大大减少了代码行,而且这种编程模型可以直接映射到格式良好的XML文档结构。

static void CreateFunctionalXmlElement()  {  // A "functional" approach to build an  // XML element in memory.  XElement inventory =  new XElement("Inventory",  new XElement("Car", new XAttribute("ID""1"),  new XElement("Color""Green"),  new XElement("Make""BMW"),  new XElement("PetName""Stan")  )  );  // Call ToString() on our XElement.  Console.WriteLine(inventory);  }

在内存中创建LINQ to XML文档

static void CreateFunctionalXmlDoc(         {             XDocument inventoryDoc =             new XDocument(             new XDeclaration("1.0""utf-8""yes"),             new XComment("Current Inventory of AutoLot"),             new XElement("Inventory",             new XElement("Car"new XAttribute("ID""1"),             new XElement("Color""Green"),             new XElement("Make""BMW"),             new XElement("PetName""Stan")             ),             new XElement("Car"new XAttribute("ID""2"),             new XElement("Color""Pink"),             new XElement("Make""Yugo"),             new XElement("PetName""Melvin")             )             )             );             // Display the document and save to disk.             Console.WriteLine(inventoryDoc);             inventoryDoc.Save("SimpleInventory.xml");         }

三、使用LINQ查询创建XML文档

static void CreateXmlDocFromArray()  {  // Create an anonymous array of anonymous types.  var data = new [] {  new { PetName = "Melvin", ID = 10 },  new { PetName = "Pat", ID = 11 },  new { PetName = "Danny", ID = 12 },  new { PetName = "Clunker", ID = 13 }  };  // Now enumerate over the array to build  // an XElement.  XElement vehicles =  new XElement("Inventory",  from c in data  select new XElement("Car",  new XAttribute("ID", c.ID),  new XElement("PetName", c.PetName)  )  );  Console.WriteLine(vehicles);  }

四、加载和解析LINQ to XML内容

static void LoadExistingXml()          {              // Build an XElement from string.              string myElement =                                          @"<CAR ID =< SPAN>'3'>                              Yellow                             Yugo                             ";              XElement newElement = XElement.Parse(myElement);              Console.WriteLine(newElement);              Console.WriteLine();              // Load the SimpleInventory.xml file.              XDocument myDoc = XDocument.Load("SimpleInventory.xml");              Console.WriteLine(myDoc);          }

五、遍历内存中的LINQ to XML 文档

LINQ to XML 示例:

<?xml version="1.0" encoding="utf-8"?>     <CAR CARID =< SPAN>"0">      Ford     Blue     Chuck      <CAR CARID =< SPAN>"1">      VW     Silver     Mary      <CAR CARID =< SPAN>"2">      Yugo     Pink     Gipper      <CAR CARID =< SPAN>"55">      Ford     Yellow     862 CHAPTER 24 n PROGRAMMING WITH THE LINQ APIS      Max      <CAR CARID =< SPAN>"98">      BMW     Black     Zippy

LINQ to XML 加载

static void Main(string[] args)          {              Console.WriteLine("***** Fun with LINQ to XML *****\n");              // Load the Inventory.xml document into memory.              XElement doc = XElement.Load("Inventory.xml");              // We will author each of these next              PrintAllPetNames(doc);              Console.WriteLine();              GetAllFords(doc);              Console.ReadLine();          }

LINQ to XML遍历

static void PrintAllPetNames(XElement doc)  {  var petNames = from pn in doc.Descendants("PetName")  select pn.Value;  foreach (var name in petNames)  Console.WriteLine("Name: {0}", name);  }

LINQ to XML查询

static void GetAllFords(XElement doc)          {              var fords = from c in doc.Descendants("Make")                          where c.Value == "Ford"                         select c;              foreach (var f in fords)                  Console.WriteLine("Name: {0}", f);          }

六、修改LINQ to XML 文档

static void AddNewElements(XElement doc)  {  // Add 5 new purple Fords to the incoming document.  for (int i = 0; i < 5; i++)  {  // Create a new XElement  XElement newCar =  new XElement("Car", new XAttribute("ID", i + 1000),  new XElement("Color""Green"),  new XElement("Make""Ford"),  new XElement("PetName""")  );  // Add to doc.  doc.Add(newCar);  }  // Show the updates.  Console.WriteLine(doc);  }

感谢各位的阅读,以上就是“LINQ to XML的文档类型有哪些”的内容了,经过本文的学习后,相信大家对LINQ to XML的文档类型有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

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

AI

开发者交流群×