Linq To Xml学习 - 3.查询、更新、删除
[1] Linq To Xml学习 - 3.查询、更新、删除
[2] Linq To Xml学习 - 3.查询、更新、删除
[3] Linq To Xml学习 - 3.查询、更新、删除
[4] Linq To Xml学习 - 3.查询、更新、删除
[2] Linq To Xml学习 - 3.查询、更新、删除
[3] Linq To Xml学习 - 3.查询、更新、删除
[4] Linq To Xml学习 - 3.查询、更新、删除
Linq To Xml学习 - 3.查询、更新、删除
文章最后有该示例的XML文档。
查找具有特定属性的元素
XElement root = XElement.Load("PurchaseOrder.xml"); IEnumerable address = from el in root.Elements("Address") where (string)el.Attribute("Type") == "Billing" select el; foreach (XElement el in address) Console.WriteLine(el);
输出为:
<Address Type="Billing"> <Name>Tai YeeName> <Street>8 Oak AvenueStreet> <City>Old TownCity> <State>PAState> <Zip>95819Zip> <Country>USACountry> Address>
内存中 XML 树修改与函数构造
就地修改 XML 树是更改 XML 文档形状的传统方法。 典型的应用程序将文档加载到数据存储区(如 DOM 或 LINQ to XML);使用编程接口插入节点、删除节点或更改节点的内容;然后将 XML 保存到文件或通过网络传输。
LINQ to XML 允许使用另一种可在许多方案中使用的方法:函数构造。 函数构造将修改数据视为转换问题,而不是数据存储区的具体操作。 如果您采用某种数据表示形式并有效地将其从一种形式转换为另一种形式,其结果等效于您采用一个数据存储区并对其以某种方式进行操作以采用另一种形状。 函数构造方法的关键是将查询的结果传递给 XDocument 和 XElement 构造函数。
此示例假设您想修改下面的简单 XML 文档,使属性变为元素。 本节首先介绍传统的就地修改方法。 然后显示函数构造方法。XML文件:
xml version="1.0" encoding="utf-8" ?>
<Root Data1="123" Data2="456">
<Child1>ContentChild1>
Root>
您可以编写一些过程代码以便从属性创建元素,然后删除属性,如下所示:
XElement root = XElement.Load("Data.xml"); foreach (XAttribute att in root.Attributes()) { root.Add(new XElement(att.Name, (string)att)); } root.Attributes().Remove(); Console.WriteLine(root);
输出结果为:
<Root> <Child1>ContentChild1> <Data1>123Data1> <Data2>456Data2> Root>