LINQ to XML
Posted zero0r1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINQ to XML相关的知识,希望对你有一定的参考价值。
LINQ to XML
LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML。
LINQ to XML 将 XML 文档置于内存中,这一点很像文档对象模型 (DOM)。
但是,LINQ to XML 与 DOM 不同:它提供一种新的对象模型,这是一种更轻量的模型,使用也更方便,这种模型利用了 C# 中的语言功能。
例如,示例 Sample XML Documents (LINQ to XML) 通过使用 LINQ to XML,可以运行以下查询,以获取采购单每个项元素的部件号属性值:
IEnumerable<string> partNos = from item in purchaseOrder.Descendants("Item") select (string) item.Attribute("PartNumber");
另一个示例,您可能需要一个列表,列出值大于 100 美元的项,并根据部件号排序。 若要获取此信息,可以运行下面的查询:
IEnumerable<XElement> partNos = from item in purchaseOrder.Descendants("Item") where (int) item.Element("Quantity") * (decimal) item.Element("USPrice") > 100 orderby (string)item.Element("PartNumber") select item;
除了这些 LINQ 功能以外,LINQ to XML 提供了改进的 XML 编程接口。 使用 LINQ to XML,您可以:
- 从文件或流加载 XML。
- 将 XML 序列化为文件或流。
- 使用函数构造从头开始创建 XML。
- 使用类似 XPath 的轴查询 XML。
- 使用 Add、Remove、ReplaceWith 和 SetValue 等方法对内存 XML 树进行操作。
- 使用 XSD 验证 XML 树。
- 使用这些功能的组合,可将 XML 树从一种形状转换为另一种形状。
创建 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") ) ) );
以上是关于LINQ to XML的主要内容,如果未能解决你的问题,请参考以下文章