Linq To Xml (增,删,改,查)
XML数据如下:
<DataSet>
<dbName ID="b785723f-e7ef-448a-81b2-527de05f422a" Name="aaaaaa" Remarks="r-aa" />
<dbName ID="53232faa-a069-46b1-8ff4-f5bf47db7a68" Name="bbbbb" Remarks="r-bbbb" />
</DataSet>
一、查询
程序代码:
IEnumerable<XElement> tests =
from el in root.Elements("dbName") //查询dbName节点
where (string)el.Attribute("Remarks") == "r-aa" //条件:节点的Remarks属性的值为 r-aa
select el;
foreach (XElement el in tests) //遍历查询结果
{
Response.Write((string)el.Attribute("Name") + "<br>"); //输出查询节点的Name属性的值
}
输出结果:
aaaaaa
二、修改
1、添加节点:
程序代码:
xmlTree.Add(new XElement("newNode", "newNodes")); //添加一个名为newNode,值为newNodes的节点
输出结果:
<?xml version="1.0" encoding="utf-8"?>
<DataSet>
<dbName ID="b785723f-e7ef-448a-81b2-527de05f422a" Name="aaaaaa" Remarks="r-aa" />
<dbName ID="53232faa-a069-46b1-8ff4-f5bf47db7a68" Name="bbbbb" Remarks="r-bbbb" />
<newNode>newNodes</newNode>
</DataSet>
2、删除节点
程序代码:
IEnumerable<XElement> tests =
from el in root.Elements("dbName") //查询dbName节点
where (string)el.Attribute("Remarks") == "r-aa" //条件:节点的Remarks属性的值为 r-aa
select el;
foreach (XElement el in tests) //遍历查询结果
{
el.RemoveNodes(); //删除查询节点的Name属性的值
}
输出结果:
<?xml version="1.0" encoding="utf-8"?>
<DataSet>
<dbName ID="53232faa-a069-46b1-8ff4-f5bf47db7a68" Name="bbbbb" Remarks="r-bbbb" />
</DataSet>
3、修改节点
程序代码:
IEnumerable<XElement> tests =
from el in root.Elements("dbName") //查询dbName节点
where (string)el.Attribute("Remarks") == "r-aa" //条件:节点的Remarks属性的值为 r-aa
select el;
foreach (XElement el in tests) //遍历查询结果
{
el.SetValue("cccc"); //删除查询节点的Name属性的值
}
输出结果:
<?xml version="1.0" encoding="utf-8"?>
<DataSet>
<dbName ID="b785723f-e7ef-448a-81b2-527de05f422a" Name="cccc" Remarks="r-aa" />
<dbName ID="53232faa-a069-46b1-8ff4-f5bf47db7a68" Name="bbbbb" Remarks="r-bbbb" />
</DataSet>
XElement 关于修改和删除的方法还有很多,我这里就不一一列举了。