Linq To Xml (增,删,改,查)

XML数据如下:

<?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" />   
</DataSet>

一、查询
程序代码:

XElement root = XElement.Load("Test.xml");                //加载需要操作的XML文件
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、添加节点:
程序代码:

XElement mXml = XElement.Load("Test.xml");                //加载需要操作的XML文件
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、删除节点
程序代码:

XElement root = XElement.Load("Test.xml");                //加载需要操作的XML文件
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、修改节点
程序代码:

XElement root = XElement.Load("Test.xml");                //加载需要操作的XML文件
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 关于修改和删除的方法还有很多,我这里就不一一列举了。

转载于:https://www.cnblogs.com/xumingming/archive/2010/05/17/1737309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值