c#对xml的操作

            XmlDocument xmlDoc = new XmlDocument();
            string path = Server.MapPath("~/Content/xml1.xml");
            xmlDoc.Load(path);//获取xml根据物理路径,一定要使用Load LoadXml是加载字符串的
            XmlNode root = xmlDoc.SelectSingleNode("bookstore");//添加节点
            XmlElement xe1 = xmlDoc.CreateElement("book");
            xe1.SetAttribute("genre", "zhu");
            xe1.SetAttribute("ISBN", "123456");

            XmlElement xesub1 = xmlDoc.CreateElement("title"); 
            xesub1.InnerText = "dfasdfase";
            xe1.AppendChild(xesub1);

            root.AppendChild(xe1);

            xmlDoc.Save(path);


            XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;

            foreach (XmlNode xmlNode in nodeList)
            {
                XmlElement xe2 = (XmlElement)xmlNode;//将Node转化为XmlElement才能进行下面的操作
                if (xe2.GetAttribute("genre") == "zhu1")//获取某一个节点的属性
                {
                    xe2.SetAttribute("genre", "zhu1");//设置某一个节点的属性
                    XmlNodeList xmllist = xe2.ChildNodes;
                    string tiutle = ((XmlElement)xmllist[0]).InnerText;
                    XmlCDataSection ca = xmlDoc.CreateCDataSection("dfasdfwe");//添加CData块
                    ((XmlElement)xmllist[0]).AppendChild(ca);

                }
            }

            xmlDoc.Save(path);//保存

注意:遇到 根级别上的数据无效。 第 1 行,位置 1。这种错误的原因:1 编码格式 2 没有写xml头 3 xml格式错误 4 空格 5使用Load还是使用LoadXml 6 数据量太大也会导致这个问题,可以修改配置文件

posted @ 2014-03-17 09:45  zhushang  阅读(197)  评论(0)    收藏  举报