本文从六个方面对LINQ to XML做了简单介绍,它们分别是命名空间、编程方式创建XML文档、使用LINQ查询创建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 文档个方面的很多类型
定义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 =
- @" '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 示例:
- "1.0" encoding="utf-8"?>
- "0">
- Ford
- Blue
- Chuck
- "1">
- VW
- Silver
- Mary
- "2">
- Yugo
- Pink
- Gipper
- "55">
- Ford
- Yellow
- 862 CHAPTER 24 n PROGRAMMING WITH THE LINQ APIS
- Max
- "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
URL地址:http://www.shufengxianlan.com/qtweb/news9/304459.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联