C# Linq to xml 基本操作

xml 文件格式(可以可无)

<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Book ID="1">
    <Name>Csharp Art</Name>
    <press>xi'an</press>
  </Book>
  <Book ID="2">
    <Name>C++</Name>
    <press>bejing</press>
  </Book>
  <Book ID="3">
    <Name>Asp.NET</Name>
    <press>Australia</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
  <Book ID="6">
    <Name>sdadaserwtretretre</Name>
    <press>dsadas</press>
  </Book>
</Root>

C# :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml.Linq;

using System.IO;

namespace linq_to_sql
{
    public partial class Form_Linq_to_XML : Form
    {
        public Form_Linq_to_XML()
        {
            InitializeComponent();
        }

        private void Form_Linq_to_XML_Load(object sender, EventArgs e)
        {
            gdv_linq_to_xml.ReadOnly = true;
            string str_path = "./Myxml.xml";
            FileInfo file = new FileInfo(str_path);
            if (!file.Exists)
            {
                CreateXML(str_path);
            }
            else
            {
                //Datatable
                //getDateXML();
                //Emlent
                getDateXML1();
            }
        }

        private void getDateXML1()
        {
            XDocument xml = XDocument.Load("./Myxml.xml");
           var book = from b in xml.Root.Elements("Book")
                                          select new
                                          {
                                              ID = b.Attribute("ID").Value,
                                              Name = b.Element("Name").Value,
                                              Press = b.Element("press").Value
                                          };
            gdv_linq_to_xml.DataSource = book.ToList();
        }
        /// <summary>
        /// Load my XML
        /// </summary>
        private void getDateXML()
        {
            DataSet xmlDs = new DataSet();
            xmlDs.ReadXml("Myxml.xml");
            if (xmlDs != null)
            {
                gdv_linq_to_xml.DataSource = xmlDs.Tables[0];
            }
        }
        /// <summary>
        /// create xmL demo
        /// </summary>
        private void CreateXML(string str_path)
        {
            string xml = str_path;
            string path = str_path;
            #region this has a question
            //XDocument root = new XDocument(new XElement("User"), 
                
            //    new XElement("User", new XAttribute("ID", "1"),
            //    new XElement("Name","小李"),
            //    new XElement("Password","XXOO"),
            //    new XElement("description","hello testing")),

            //        new XElement("User", new XAttribute("ID", "2"),
            //        new XElement("Name","小李"),
            //        new XElement("Password","OOXX"),
            //        new XElement("description","hello testing")),

            //            new XElement("User", new XAttribute("ID", "3"),
            //            new XElement("Name","小刚"),
            //            new XElement("Password","ssss"),
            //            new XElement("description","hello Testings")));
            //root.Save(str_path);

            #endregion
            #region
            XElement filexml = new XElement("Root",
                new XElement("Book",
                    new XAttribute("ID", 1),
                    new XElement("Name", "Csharp Art"),
                    new XElement("press", "xi'an")
                    ),
                    new XElement("Book",
                        new XAttribute("ID", 2),
                        new XElement("Name", "C++"),
                        new XElement("press", "bejing")),
                        new XElement("Book",
                            new XAttribute("ID",3),
                            new XElement("Name", "Asp.NET"),
                            new XElement("press", "Australia")
                        ));
            filexml.Save(path);
            #endregion

        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            //create xml  objcet and Load my xml file;
            XDocument xml = XDocument.Load("./Myxml.xml");
            XElement xmlo = new XElement("Book",
                new XAttribute("ID", 6),
                new XElement("Name", this.textBox1.Text.Trim()),
                new XElement("press", this.textBox2.Text.Trim()));
            xml.Root.Add(xmlo);
            xml.Save("./Myxml.xml");
            getDateXML();
        }

        private void btnupdate_Click(object sender, EventArgs e)
        {
            XDocument xml = XDocument.Load("./Myxml.xml");
            var book = from b in xml.Root.Elements("Book")
                       where b.Attribute("ID").Value == "6"
                       select b;
            foreach (XElement xe in book)
            {
                xe.SetElementValue("Name", this.textBox1.Text.Trim());
                xe.SetElementValue("press", this.textBox2.Text.Trim());
            }
            xml.Save("./Myxml.xml");
            getDateXML();
        }

        private void btnselect_Click(object sender, EventArgs e)
        {

            XDocument xml = XDocument.Load("./Myxml.xml");

            var book = from b in xml.Root.Elements("Book")
                       where b.Attribute("ID").Value == "6"
                       select new
                       {
                           ID=b.Attribute("ID").Value,
                           Name=b.Element("Name").Value,
                           Press=b.Element("press").Value
                       };
            gdv_linq_to_xml.DataSource = book.ToList();
            
        }

        private void btndelete_Click(object sender, EventArgs e)
        {
            XDocument xml = XDocument.Load("./Myxml.xml");
            var book = from p in xml.Root.Elements("Book")
                       where p.Attribute("ID").Value == "6"
                       select p;

            book.Remove();

            xml.Save("./Myxml.xml");

            getDateXML();


        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值