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"));

 

posted @ 2013-08-21 17:08  呓语  阅读(1606)  评论(0编辑  收藏  举报
welcome to this garden! --Chenly