终于静下心来学习LinqToXml,虽然说不复杂,但对我这种菜鸟来说,还是遇到一些问题,经过不懈努力的baidu,google之后,学习了很多人的经验教训,也摘录了很多人的代码,终于有点眉目。在此把做好的一个实例分享出来。

//查询绑定

 

 BindPerson()
        {
            // 加载指定的xml文件
            XDocument xml = XDocument.Load("http://www.cnblogs.com/Sample1.xml");

            
// 使用查询语法获取Person集合
            var persons = from p in xml.Root.Elements("person")

                          select 
new
                          {
                              Name 
= p.Element("name").Value,
                              Age 
= int.Parse(p.Element("age").Value),
                              Salary 
= p.Element("salary").Value
                          };
            
if (!string.IsNullOrEmpty(this.txtName.Text))
                persons 
= from e in persons
                          
where e.Name.Contains(this.txtName.Text)
                          select e;
            
if (!string.IsNullOrEmpty(this.txtAge.Text))
            {

                persons 
= from e in persons
                          
where (int)e.Age >= int.Parse(this.txtAge.Text.Trim())
                          select e;
            }
            
this.dataGridView1.DataSource = persons.ToList(); 

        }

//新增

 


        private void cmdAdd_Click(object sender, EventArgs e)
        {
            
try
            {
                
int age = 0;
                
if (!string.IsNullOrEmpty(this.txtAge.Text))
                    age 
= int.Parse(this.txtAge.Text.Trim());
                
// 加载指定的xml文件
                XDocument xml = XDocument.Load("http://www.cnblogs.com/Sample1.xml");

                
// 创建需要新增的XElement对象
                XElement person = new XElement(
                    
"person",
                    
new XElement("name", txtName.Text),
                    
new XElement("age", age),
                    
new XElement("salary", txtSalary.Text));

                
// 添加需要新增的XElement对象
                xml.Root.Add(person);

                
// 保存xml
                xml.Save("http://www.cnblogs.com/Sample1.xml");

                BindPerson();
              
            }
            
catch
            {
                MessageBox.Show(
"新增失败!");

            }
        }

//修改

 

 sender, EventArgs e)
        {
            try
            {
                
// 加载指定的xml文件
                XDocument xml = XDocument.Load("http://www.cnblogs.com/Sample1.xml");

                
// 使用查询语法获取指定的Person集合
                var persons = from p in xml.Root.Elements("person")
                              
where p.Element("name").Value == this.txtName.Text
                              select p;

                
// 更新指定的XElement对象
                foreach (XElement xe in persons)
                {
                    xe.SetElementValue(
"age"this.txtAge.Text);
                    xe.SetElementValue(
"salary"this.txtSalary.Text);
                }

                
// 保存xml
                xml.Save("http://www.cnblogs.com/Sample1.xml");

                BindPerson();
               
            }
            
catch
            {

                MessageBox.Show(
"修改失败!");
            }
        }

//删除

 

 sender, EventArgs e)
        {
            try
            {
                
// 加载指定的xml文件
                XDocument xml = XDocument.Load("http://www.cnblogs.com/Sample1.xml");

                
// 使用查询语法获取指定的Person集合
                var persons = from p in xml.Root.Elements("person")
                              
where p.Element("name").Value == this.txtName.Text
                              select p;

                
// 删除指定的XElement对象
                persons.Remove();

                
// 保存xml
                xml.Save("http://www.cnblogs.com/Sample1.xml");

                BindPerson();
               
            }
            
catch
            {
                MessageBox.Show(
"删除失败");
            }
        }

 

//xml文件:

 


  <person>
    
<name>test</name>
    
<age>23</age>
    
<salary>1111</salary>
  
</person>
  
<person>
    
<name>小王</name>
    
<age>30</age>
    
<salary>6000</salary>
  
</person>
</root>

 

源代码下载地址:/Files/gjahead/LinqToXml.rar

相关文章:

  • 2022-02-24
  • 2022-02-14
  • 2021-07-11
  • 2022-02-11
  • 2021-07-23
  • 2021-08-27
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-18
  • 2021-12-15
  • 2022-12-23
  • 2022-12-23
  • 2021-05-02
  • 2022-01-20
相关资源
相似解决方案