zoukankan      html  css  js  c++  java
  • 利用XmlDocument操作XML文件

    利用XmlDocument可以方便的操作XML文件。
    
    1.操作XML文件基本方法
    
    (1)添加对System.Xml的引用,并使用using语句添加引用;
    
    (2)假设要读取的XML文件如下:
    
    <?xml version="1.0" encoding="utf-8"?>
    <Students>
      <Student>
        <Name>张靓靓</Name>
        <Age>20</Age>
        <Hobby>唱歌歌</Hobby>
      </Student>
      <Student>
        <Name>周杰杰</Name>
        <Age>22</Age>
        <Hobby>耍双节棍棍</Hobby>
      </Student>
    </Students>3)编写程序,增加节点:
    
            private static void AddNode()
            {
                XmlDocument myXml = new XmlDocument();
                myXml.Load("Student.xml"); //读取指定的XML文档
                XmlNode students = myXml.SelectSingleNode("Students");//读取Students节点
                XmlElement newStudent = myXml.CreateElement("Student");
    
                newStudent.SetAttribute("班级", "10软件");
                XmlElement name = myXml.CreateElement("Name");
                name.InnerText = "张三";
                XmlElement age = myXml.CreateElement("Age");
                age.InnerText = "20";
                XmlElement hobby = myXml.CreateElement("Hobby");
                hobby.InnerText = "看书";
                newStudent.AppendChild(name);
                newStudent.AppendChild(age);
                newStudent.AppendChild(hobby);
                students.AppendChild(newStudent);
                myXml.Save("Student.xml");
            }
    
    (4)删除节点:
    
            private static void DelNode()
            {
                XmlDocument myXml = new XmlDocument();
                myXml.Load("Student.xml"); //读取指定的XML文档
                XmlNode student= myXml.SelectSingleNode("//Student[Name='张德友']");//读取节点
                if(student!=null)
                    student.ParentNode.RemoveChild(student);
                myXml.Save("Student.xml");
            }
    
    (5)修改节点的值:
    
            private static void ChangeNode()
            {
                XmlDocument myXml = new XmlDocument();
                myXml.Load("Student.xml"); //读取指定的XML文档
                XmlNodeList students = myXml.DocumentElement.ChildNodes;
                foreach (XmlNode student in students)
                {
                    XmlElement name=student.SelectSingleNode("Name") as XmlElement;//读取节点
                    if (name.InnerText.Equals("张三"))
                        name.InnerText = "李四";
                }
                myXml.Save("Student.xml");
            }
    
    (6)读取XML文件:
    
            private static void ReadNode()
            {
                XmlDocument myXml = new XmlDocument();
                myXml.Load("Student.xml"); //读取指定的XML文档
                XmlNodeList students = myXml.DocumentElement.ChildNodes;//读取所有Student节点
                foreach (XmlNode student in students)// 对子节点进行循环
                {
                    foreach (XmlNode node in student.ChildNodes)
                    {
                        //将每个节点的内容显示出来
                        switch (node.Name)
                        {
                            case "Name":
                                Console.WriteLine("姓名:{0}", node.InnerText);
                                break;
                            case "Age":
                                Console.WriteLine("年龄:{0}", node.InnerText);
                                break;
                            case "Hobby":
                                Console.WriteLine("爱好:{0}", node.InnerText);
                                break;
                        }
                    }
                }
            }
    
    2  操作ASP.NET网站站点地图文件:
    
    站点地图文件Web.sitemap的格式如下:
    
    <?xml version="1.0" encoding="utf-8"?>
    <siteMapNode url="default.aspx" title="新书推荐" description="">
      <siteMapNode title=" C#" url="BookList.aspx?typeid=1" description="" />
      <siteMapNode title=".NET" url="BookList.aspx?typeid=25" description="" />
    </siteMapNode>
    
        /// <summary>
        /// 更新全部XML
        /// </summary>
        private void ModifyXml()
        {        
            xmldocTree.Load(Server.MapPath(CATAGORYXML));
            xmldocTree.SelectSingleNode("siteMapNode").InnerText="";
            foreach (Category catagory in CategoryManager.GetAllCategories())
            {
                MakeChild(catagory);
            }
            xmldocTree.Save(Server.MapPath(CATAGORYXML));
        }
        /// <summary>
        /// 设置子节点
        /// </summary>
        /// <param name="catagory"></param>
        private void MakeChild(Category catagory)
        {
            XmlElement xmlelNode = xmldocTree.CreateElement("siteMapNode");
            xmlelNode.SetAttribute("title", catagory.Name);
            xmlelNode.SetAttribute("url", BOOKLISTURL + catagory.Id.ToString());
            xmlelNode.SetAttribute("description", "");
            xmldocTree.SelectSingleNode("siteMapNode").AppendChild(xmlelNode);
        }
    
    拣尽寒枝不肯栖,寂寞沙洲。
    
    
    
    分类: .Net
    
    标签: XML
    
    
    绿色通道: 谢谢推荐! 已关注 收藏该文与我联系  
    
    
     
    zhouhb
    关注 - 27
    粉丝 - 70 
    
    
    
    我在关注他 取消关注 
    
    
    2 
    
    0 
    
    
    推荐成功
    
    
    «  上一篇:C#调用带返回值的存储过程
    »  下一篇:JavaScript学习笔记(一)—细节问题
  • 相关阅读:
    20182330 2019-2020-1 《数据结构与面向对象程序设计》实验四报告
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第四周学习总结
    20182330 2019-2020-1 《数据结构与面向对象程序设计》实验三报告
    20182330 2019-2020-1 《数据结构与面向对象程序设计》第三周学习总结
    20182330 2019-2020-1 《数据结构与面向对象程序设计》实验二报告
    20182330 2019-2020-1 《数据结构与面向对象程序设计》实验一报告
    20182330 2019-2020-1《数据结构与面向对象程序设计》第一周学习总结
    20182326 2019-2020-1 《数据结构与面向对象程序设计》实验六报告
    20182326 2019-2020-1 《数据结构与面向对象程序设计》实验五报告
    2019-2020-26 《数据结构与面向对象程序设计》第6周学习总结
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/4842926.html
Copyright © 2011-2022 走看看