zoukankan      html  css  js  c++  java
  • C#操作xml文件

    上次操作这东西还是第一个项目里面,为了读取xml文件里面的大量的数据操作这东西。

    现在突然要写这东西虽然很简单,还是有点生疏,写个demo以备查阅。后面再linq to xml就简单很多。

    使用的xml文件demo.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <connectionstrings>
      <connectionstring id="connstr1">
        <serverAddress>127.0.0.1</serverAddress>
        <dataBase>test</dataBase>
        <userId>sa</userId>
        <password>111222</password>
      </connectionstring>
      <connectionstring id="connstr2">
        <serverAddress>127.0.0.1</serverAddress>
        <dataBase>test</dataBase>
        <userId>sa</userId>
        <password>111222</password>
      </connectionstring>
    </connectionstrings>

    然后是操作xml的类XmlOperatorDemo.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    
    namespace TestDemo
    {
        public class XmlOperateDemo
        {
            readonly XmlDocument xmlDoc=new XmlDocument();
            private readonly string xmlPath = "";
            public XmlOperateDemo(string xmlpath)
            {
                xmlDoc.Load(xmlpath);
                xmlPath = xmlpath;
            }
    
            public void GetNodeValue()
            {
                var list = xmlDoc.GetElementsByTagName("connectionstring");//获取节点列表
                foreach (XmlElement xe in list)
                {
                    Console.WriteLine(xe.GetAttribute("id")+":");//获取属性
                    Console.WriteLine(xe.InnerXml);//节点内容
                    XmlElement address = (XmlElement)xe.SelectSingleNode("serverAddress");//获取节点
                    Console.WriteLine("serverAddress:" + address.InnerText);
                }
    
            }
    
            public void SetNodeValue()
            {
                var nodecount = xmlDoc.GetElementsByTagName("connectionstring").Count+1;
                var connstr3 = xmlDoc.CreateElement("connectionstring");
                connstr3.SetAttribute("id", "connstr" + nodecount);//设置属性
                XmlElement serverAddress = xmlDoc.CreateElement("serverAddress");
                serverAddress.InnerText = "127.0.0.1";//设置文本内容
                XmlElement dataBase = xmlDoc.CreateElement("dataBase");
                dataBase.InnerText = "test";
                XmlElement userId = xmlDoc.CreateElement("userId");
                userId.InnerText = "sa";
                XmlElement password = xmlDoc.CreateElement("password");
                password.InnerText = "111222";
                connstr3.AppendChild(serverAddress);
                connstr3.AppendChild(dataBase);
                connstr3.AppendChild(userId);
                connstr3.AppendChild(password);
               
                Console.WriteLine("---new connstr---:");
                Console.WriteLine(connstr3.InnerXml);
                var root= xmlDoc.SelectSingleNode("connectionstrings");//根节点
                root.AppendChild(connstr3);// 添加节点
                xmlDoc.Save(xmlPath);//保存
                Console.WriteLine("after nodeadding:");
                GetNodeValue();
    
    
            }
    
            public void DeleteNode()
            {
                Console.WriteLine("before delete-----------------------:");
                GetNodeValue();
                var root = xmlDoc.SelectSingleNode("connectionstrings");
                var node=root.SelectSingleNode("connectionstring");
           //删除节点 root.RemoveChild(node); xmlDoc.Save(xmlPath); Console.WriteLine(
    "after delete-----------------------:"); GetNodeValue(); } } }

    测试主方法:

     static void Main(string[] args)
            {
                var xmldemo=new XmlOperateDemo(@"D:\visual studio\TestDemo\TestDemo\demo.xml");
                //xmldemo.GetNodeValue();
                //xmldemo.SetNodeValue();
                xmldemo.DeleteNode();
    
                Console.Read();
            }
  • 相关阅读:
    CodeForces 734F Anton and School
    CodeForces 733F Drivers Dissatisfaction
    CodeForces 733C Epidemic in Monstropolis
    ZOJ 3498 Javabeans
    ZOJ 3497 Mistwald
    ZOJ 3495 Lego Bricks
    CodeForces 732F Tourist Reform
    CodeForces 732E Sockets
    CodeForces 731E Funny Game
    CodeForces 731D 80-th Level Archeology
  • 原文地址:https://www.cnblogs.com/wancy86/p/xml_operate.html
Copyright © 2011-2022 走看看