• c# 操作xml题目




    1、新建一个文本文件,命名为:projects.txt。
    2、将后缀名改为projects.xml。 
    3、用记事本编辑该文件。使用utf-8编码。内容如下:

    <?xml version="1.0" encoding="GB2312"?>
    <root>
      <projects>
        <project>
          <name>项目1</name>
          <url>http://baidu.com/</url>
          <sqltype>mysql</sqltype>
          <loginid>root</loginid>
          <password>pwd</password>
          <dt>2013-01-01</dt>
        </project>
        <project>
          <name>项目2</name>
          <url>http://google.com/</url>
          <sqltype>sql</sqltype>
          <loginid>root</loginid>
          <password>pwd</password>
          <dt>2013-10-10</dt>
        </project>
      </projects>
    </root>

    4、新建窗口应用程序,实现以下功能。放置一个菜单项(文件),包含三个子菜单项(打开xml,关闭,退出),
    当点击“打开xml”时,程序直接打开程序当前目录下的projects.xml,解析出文件内容,存入Datatable中,
    然后显示到窗口上。
    当点击"关闭"时,清空窗口上的显示。
    当点击“退出”时,关闭窗口。 

    Rxml.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.IO;
    using System.Reflection;
    using System.Windows.Forms;
    using System.Data;
    
    namespace WindowsFormsApplication1
    {
        class Rxml
        {
            private XmlDocument doc;
            public void createXML( string path) {
                doc = new XmlDocument();
                XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "GB2312", null);
                doc.AppendChild(dec);
    
                XmlElement root = doc.CreateElement("root");
                doc.AppendChild(root);
    
                XmlNode projects = doc.CreateElement("projects");
                root.AppendChild(projects);
    
                doc.Save(path);
            }
    
            public void xmlload(string path) {
                doc = new XmlDocument();
                doc.Load(path);
            }
    
            public void addnode(string name,string url,string sqltype,string loginid,string password,string dt,string path ) {
                xmlload(path);
                XmlNode xmldocselect= doc.SelectSingleNode("/root/projects");
                XmlElement e1 = doc.CreateElement("project");
    
                XmlElement e2 = doc.CreateElement("name");
                e2.InnerText = name;
                e1.AppendChild(e2);
    
                XmlElement e3 = doc.CreateElement("url");
                e3.InnerText = url;
                e1.AppendChild(e3);
    
                XmlElement e4 = doc.CreateElement("sqltype");
                e4.InnerText = sqltype;
                e1.AppendChild(e4);
    
                XmlElement e5 = doc.CreateElement("loginid");
                e5.InnerText = loginid;
                e1.AppendChild(e5);
    
                XmlElement e6 = doc.CreateElement("password");
                e6.InnerText = password;
                e1.AppendChild(e6);
    
                XmlElement e7 = doc.CreateElement("dt");
                e7.InnerText = dt;
                e1.AppendChild(e7);
    
                xmldocselect.AppendChild(e1);
                doc.Save(path);
            }
    
            public DataTable readxml(string path)
            {
                //产生读取器。
                XmlTextReader read;
                //判断是否存在外部xml,如存在则读取外部的资源,如不存在则读取内部资源。
                if (File.Exists(path))
                {
                    read = new XmlTextReader(path);
                }
                else
                {
                    Assembly asm = Assembly.GetExecutingAssembly();
                    Stream sm = asm.GetManifestResourceStream("Tetris.setting.xml");
                    read = new XmlTextReader(sm);
                }
    
                DataTable dt = new DataTable();
                dt.Columns.Add("Name", typeof(string));
                dt.Columns.Add("Url", typeof(string));
                dt.Columns.Add("Sqltype", typeof(string));
                dt.Columns.Add("Loginid", typeof(string));
                dt.Columns.Add("Password", typeof(string));
                dt.Columns.Add("Dt", typeof(string));
                DataRow row = dt.NewRow();
              
                string key = "";
                try
                {
    
                    while (read.Read())
                    {
                        if (read.Name == "name")
                        {
                            key = read.ReadElementString().Trim();
                            string z = key.ToString().Trim();
                            row["Name"] = z;
                        }
                        else if (read.Name == "url")
                        {
                            key = read.ReadElementString().Trim();
                            string zz = key.ToString().Trim();
                            row["Url"] = zz;
                        }
                        else if (read.Name == "sqltype")
                        {
                            key = read.ReadElementString().Trim();
                            string zzz = key.ToString().Trim();
                            row["Sqltype"] = zzz;
                        }
                        else if (read.Name == "loginid")
                        {
                            key = read.ReadElementString().Trim();
                            string zzzz = key.ToString().Trim();
                            row["Loginid"] = zzzz;
                        }
                        else if (read.Name == "password")
                        {
                            key = read.ReadElementString().Trim();
                            string zzzzz = key.ToString().Trim();
                            row["Password"] = zzzzz;
                        }
                        else if (read.Name == "dt")
                        {
                            key = read.ReadElementString().Trim();
                            string zzzzzz = key.ToString().Trim();
                            row["Dt"] = zzzzzz;
                            dt.Rows.Add(row);
                            row = dt.NewRow();
                        }
                    }
                }
                //异常处理。
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                //关闭读取器。
                finally
                {
                    if (read != null)
                    {
                   
                        read.Close();
                    }
                }
                return dt;
            }
        
        
        }
    }
    

    Form1.cs
    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;
    
    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                
            }
    
            Rxml z = new Rxml();
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                z.createXML(@"d:b.xml");
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
    
                z.addnode("项目1", "http://baidu.com/", "mysql", "root", "pwd", "2013-01-01", @"d:b.xml");
            }
    
            private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Close();
            }
    
            private void 打开xmlToolStripMenuItem_Click(object sender, EventArgs e)
            {
                dataGridView1.DataSource = z.readxml(@"d:b.xml");
            }
    
            private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                dataGridView1.DataSource = null;
    
            }
    
        }
    }
    




  • 相关阅读:
    JAVA访问权限控制[zhuan]
    Netstat简介
    查看cpu性能和磁盘空间
    简单linux查询
    linux 三剑客命令(grep,sed ,awk)
    同步、异步的使用场景及好处
    AJAX中同步和异步的区别和使用场景
    在SpringBoot中用SpringAOP实现日志记录功能
    springboot使用@Aspect实现AOP记录日志讲解
    Spring:获取容器中的Bean
  • 原文地址:https://www.cnblogs.com/james1207/p/3424073.html
Copyright © 2020-2023  润新知