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。
  • 使用 AddRemoveReplaceWith 和 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的主要内容,如果未能解决你的问题,请参考以下文章

C# — LINQ To XML示例

如何使用 linq-to-xml 查询简化此功能?

Linq to XML 增删改查

使用带有 Xml 命名空间的 Linq to Xml

Linq To Xml操作XML增删改查

LINQ to XML - 更新节点并将其保存到 XML 文件