zoukankan      html  css  js  c++  java
  • C#对xml的操作

    xml的写操作:

    public void WriteXML(string FileName,string server,string IDServiceid,string name)
       {
        if (!File.Exists(FileName))
            {
                XmlTextWriter textWriter = new XmlTextWriter(FileName,null);
                textWriter.Formatting = Formatting.Indented;

                // 开始写过程,调用WriteStartDocument方法
                textWriter.WriteStartDocument();

                // 写入说明
                textWriter.WriteComment("First Comment XmlTextWriter Sample Example");
                textWriter.WriteComment("YtConfig.xml in root dir");

                //创建一个节点
                textWriter.WriteStartElement("Server");
                //textWriter.WriteElementString("MapServers","");
                //textWriter.WriteElementString("site", "w3sky.com");
                textWriter.WriteEndElement();

                // 写文档结束,调用WriteEndDocument方法
                textWriter.WriteEndDocument();

               // 关闭textWriter
               textWriter.Close();

            }  
            //初始化XML文档操作类
            XmlDocument myDoc = new XmlDocument();
            //加载XML文件
            myDoc.Load(FileName);

            //添加元素--UserCode
            XmlElement ele = myDoc.CreateElement("UserCode");
            XmlText text = myDoc.CreateTextNode(server);

            //添加元素--UserName
            XmlElement ele1 = myDoc.CreateElement("UserName");
            XmlText text1 = myDoc.CreateTextNode(IDServiceid);

            //添加元素--UserPwd
            XmlElement ele2 = myDoc.CreateElement("UserPwd");
            XmlText text2 = myDoc.CreateTextNode(name);

            //添加节点 User要对应我们xml文件中的节点名字
            XmlNode newElem = myDoc.CreateNode("element", "User", "");

            //在节点中添加元素
            newElem.AppendChild(ele);
            newElem.LastChild.AppendChild(text);
            newElem.AppendChild(ele1);
            newElem.LastChild.AppendChild(text1);
            newElem.AppendChild(ele2);
            newElem.LastChild.AppendChild(text2);
            XmlNode roots = myDoc.CreateNode("element", "MapServers", "");
            roots.AppendChild(newElem);

            //将节点添加到文档中
            XmlElement root = myDoc.DocumentElement;
            root.AppendChild(roots);

            //保存
            myDoc.Save(FileName);   
        }

    生成的xml为:

    <?xml version="1.0"?>
    <!--First Comment XmlTextWriter Sample Example-->
    <!--YtConfig.xml in root dir-->
    <Server>
      <MapServers>
        <User>
          <UserCode>
          </UserCode>
          <UserName>
          </UserName>
          <UserPwd>
          </UserPwd>
        </User>
      </MapServers>
    </Server>

    读操作:

    public string ReadXML(string path, string id) {
            string stat = null;
            string FileName = AppDomain.CurrentDomain.BaseDirectory;
            FileName += path + ".xml";
            string type = path + "s";
            if (File.Exists(FileName))
            {
                //初始化XML文档操作类
                XmlDocument myDoc = new XmlDocument();
                //加载XML文件
                myDoc.Load(FileName);
                if (myDoc.SelectSingleNode(type).ChildNodes.Count != 0)
                {
                    XmlNodeList nodeList = myDoc.SelectSingleNode(type).ChildNodes;
                    foreach (XmlNode xn in nodeList)
                    {
                        XmlElement xe = (XmlElement)xn;
                        if (xe.GetAttribute("IDServiceid") == id)
                        {
                            stat = "fail";
                            break;
                        }
                        else { stat = "ok"; }
                    }
                }
                else { stat = "ok"; }
            }
            else
            {
                return stat = "ok";
            }
            return stat;

        }

    删除节点操作:

    public string DelXML(string id, string path)
        {
            string stat = null;
            string FileName = AppDomain.CurrentDomain.BaseDirectory;
            string type = path + "s";
            FileName += path + ".xml";
            if (File.Exists(FileName))
            {
                //初始化XML文档操作类
                XmlDocument myDoc = new XmlDocument();
                //加载XML文件
                myDoc.Load(FileName);
                if (myDoc.SelectSingleNode(type).ChildNodes.Count != 0)
                {
                    XmlNodeList nodeList = myDoc.SelectSingleNode(type).ChildNodes;
                    foreach (XmlNode xn in nodeList)
                    {
                        XmlElement xe = (XmlElement)xn;
                        if (xe.GetAttribute("IDServiceid") == id)
                        {
                            myDoc.SelectSingleNode(type).RemoveChild(xe);
                            stat = "ok";
                            myDoc.Save(FileName);
                            break;
                        }
                        else
                        {
                            stat = "error";
                        }
                    }
                }
                else {
                    stat = "error";
                }
            }
            else
            {
                stat = "error";
            }
            return stat;
        }

  • 相关阅读:
    【BZOJ 4581】【Usaco2016 Open】Field Reduction
    【BZOJ 4582】【Usaco2016 Open】Diamond Collector
    【BZOJ 4580】【Usaco2016 Open】248
    【BZOJ 3754】Tree之最小方差树
    【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
    【51Nod 1622】【算法马拉松 19C】集合对
    【51Nod 1616】【算法马拉松 19B】最小集合
    【51Nod 1674】【算法马拉松 19A】区间的价值 V2
    【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
    【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
  • 原文地址:https://www.cnblogs.com/Mygirl/p/2090319.html
Copyright © 2011-2022 走看看