Linq有很多值得学习的地方,这里我们主要介绍Linq创建xml文档,包括介绍创建带命名空间的xml文档等方面。
LINQ to XML 最重要的优势是它与 Language-Integrated Query (LINQ) 的集成。由于实现了这一集成,因此,可以对内存 XML 文档编写查询,以检索元素和属性的集合。 LINQ to XML 的查询功能在功能上(尽管不是在语法上)与 XPath 和 XQuery 具有可比性。 Visual C# 2008 集成 LINQ 后,可提供更强的类型化功能、编译时检查和改进的调试器支持。
Linq创建xml文档
- 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")
- )
- )
- );
XElement构造函数接受两个参数,节点名和Content,Content可以是简单字符串,也可以的属性和子节点集合。
创建带命名空间的xml文档
- XNamespace myns = "http://www.cnblogs.com/mshijie";
- XElement root = new XElement(myns + "pets",
- new XAttribute(XNamespace.Xmlns + "myns", myns),
- new XElement(myns + "pet",
- new XElement(myns + "name", "Dog")));
- root.Save("test.xml");
test.xml
- <?xml version="1.0" encoding="utf-8"?>
- <myns:pets xmlns:myns="http://www.cnblogs.com/mshijie">
- <myns:pet>
- <myns:name>Dog</myns:name>
- </myns:pet>
- </myns:pets>
查询
- XNamespace myns = "http://www.cnblogs.com/mshijie";
- XElement pets = XElement.Load("test.xml");
- var query = from pet in pets.Elements(myns + "pet")
- select pet;
- Array.ForEach(query.ToArray(), p => Console.WriteLine(p.Element(myns + "name").Value));
以上介绍Linq创建xml文档。
【编辑推荐】