zoukankan      html  css  js  c++  java
  • xml 创建 添加节点或属性(自定义,复制)

    创建XML文件 两种方式:

    1、方式一

        private void makeXML()     {    

        xmldoc = new XmlDocument();         //加入XML的声明段落,<?xml version="1.0" encoding="gb2312"?>        

        XmlDeclaration xmldecl;        

        xmldecl = xmldoc.CreateXmlDeclaration("1.0", "gb2312", null);        

        xmldoc.AppendChild(xmldecl);//加入一个根元素        

        xmlelem = xmldoc.CreateElement("", "Employees", "");        

        xmldoc.AppendChild(xmlelem);         //加入另外一个元素

        for (int i = 0; i < 2; i++)         {

               XmlNode root = xmldoc.SelectSingleNode("Employees");//查找<Employees>     

               XmlElement xe1 = xmldoc.CreateElement("Node");//创建一个<Node>节点            

               xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性      

               xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性

               XmlElement xesub1 = xmldoc.CreateElement("title");      

              xesub1.InnerText = "CS从入门到精通";//设置文本节点         

              xe1.AppendChild(xesub1);//添加到<Node>节点中       

              XmlElement xesub2 = xmldoc.CreateElement("author");        

              xesub2.InnerText = "候捷";          

             xe1.AppendChild(xesub2);           

             XmlElement xesub3 = xmldoc.CreateElement("price");        

             xesub3.InnerText = "58.3";       

             xe1.AppendChild(xesub3);

             root.AppendChild(xe1);//添加到<Employees>节点中         }       

             //保存创建好的XML文档      

            xmldoc.Save(Server.MapPath("data.xml"));   

         }

    2、方式二

    private void makeXMl2()     {       

           XmlTextWriter xmlWriter;      

          string strFilename = Server.MapPath("data1.xml");

            xmlWriter = new XmlTextWriter(strFilename, Encoding.Default);//创建一个xml文档

            xmlWriter.Formatting = Formatting.Indented;

            xmlWriter.WriteStartDocument();

            xmlWriter.WriteStartElement("Employees");

            xmlWriter.WriteStartElement("Node");

            xmlWriter.WriteAttributeString("genre", "李赞红");

            xmlWriter.WriteAttributeString("ISBN", "2-3631-4");

            xmlWriter.WriteStartElement("title");

            xmlWriter.WriteString("CS从入门到精通");

            xmlWriter.WriteEndElement();

            xmlWriter.WriteStartElement("author");  

           xmlWriter.WriteString("候捷");

            xmlWriter.WriteEndElement();

            xmlWriter.WriteStartElement("price");

            xmlWriter.WriteString("58.3");

            xmlWriter.WriteEndElement();

            xmlWriter.WriteEndElement();

            xmlWriter.Close();

        }

    添加自节点 文件B获取节点到文件A节点下

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(Server.MapPath("data.xml"));

            XmlNodeList nodeList = xmlDoc.SelectSingleNode("Employees").ChildNodes;//获取Employees节点的所有子节点

            foreach (XmlNode xn in nodeList)

            {

                XmlElement xe = (XmlElement)xn;   

                XmlDocument xmlDoc2 = new XmlDocument();

                xmlDoc2.Load(Server.MapPath("data1.xml"));   

                XmlNode root = xmlDoc2.SelectSingleNode("Employees");//data1.xml查找<Employees>

                XmlNode newBook = xmlDoc.ImportNode(root, true);  //必须要这样的方法 解决了要插入的节点出自不同的文档上下文的问题。 

               xe.AppendChild(newBook);

            }

            xmlDoc.Save(Server.MapPath("data.xml"));

  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/chenly-index/p/3273073.html
Copyright © 2011-2022 走看看