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
,可以运行以下查询,以获取采购单每个项元素的部件号属性值:
XElement po = XElement.Load("PurchaseOrder.xml"); IEnumerable<XElement> childElements = from el in po.Elements() select el;
//print foreach (XElement el in childElements) Console.WriteLine(el.Name);
您可能需要一个列表,列出Address的Type属性为Billing的数据,并根据Type排序。
XElement root = XElement.Load("PurchaseOrder.xml"); IEnumerable<XElement> address = from el in root.Elements("Address") where (string)el.Attribute("Type") == "Billing" orderby (string)item.Element("Type") select el;
//print foreach (XElement el in address) Console.WriteLine(el);
再者您可能需要检索一个XML文件的集合并且删除它:
XElement root = new XElement();
IEnumerable<XElement> elList =
from el in root.Elements()
where (int)el >= 3
select el;
elList.Remove();
//print foreach (XElement el in address) Console.WriteLine(el);
除了这些 LINQ 功能以外,LINQ to XML 提供了改进的 XML 编程接口。 使用 LINQ to XML,您可以:
- 从文件或流加载 XML。
- 将 XML 序列化为文件或流。
- 使用函数构造从头开始创建 XML。
- 使用类似 XPath 的轴查询 XML。
- 使用 Add、Remove、ReplaceWith 和 SetValue 等方法对内存 XML 树进行操作。
- 使用 XSD 验证 XML 树。
- 使用这些功能的组合,可将 XML 树从一种形状转换为另一种形状。
NOTE:需要注意的是LINQ查询表达式中的部分方法的执行方式是延迟执行.
XElement root = XElement.Load("PurchaseOrder.xml");
IEnumerable<XElement> address =
from el in root.Elements("Address")
where (string)el.Attribute("Type") == "Billing"
orderby (string)item.Element("Type")
select el;
//print
foreach (XElement el in address)
Console.WriteLine(el);
以上代码高亮处:
真正的结果并没有在变量中,当前的变量有两者角色其一存储查询,其二数据容器.
address除非开始遍历其中的值,否则无论;投射,筛选,还是从from子句之后的一切都不会执行. 也许适合叫它'查询';
相关链接:
浙公网安备 33010602011771号