zoukankan      html  css  js  c++  java
  • net对XML增删改查

    Pass:看公司代码,配置下拉框的功能,和下拉框的数字转文字。配置xml里面有下拉的value,name,这样界面直接显示数字,然后转译成中文

    1.xml文件格式

    <?xml version="1.0" encoding="utf-8"?>
    <bookstore>
      <book category="COOKING" id="1">
        <title lang="en">Everyday Italian</title>
        <author>Giada De Laurentiis</author>
        <year>2005</year>
        <price>2222</price>
      </book>
    </bookstore>

    2.认识xml的基本操作的几个基本概念

        net操作xml有基本的XMLDocument、linq

         2.1 XmlDocument : XmlDocument将XML视为树状结构,它装载XML文档,并在内存中构建该文档的树状结构。下面来看下XmlDocument提供了哪些功能。

         2.2 XmlNode:节点

         2.3 XmlElement:元素

         2.4几个基本操作

               获取节点的值:?.InnerText ;

               获取节点的属性:?.Attributes["id"].InnerText ;

    3.xml的增删改查    

       3.1 最基本

            public book getModel()
            {
                //封装获取数据
                book b = new book();            
                b.author = HttpContext.Current.Request["author"];
                b.category = HttpContext.Current.Request["category"];
                b.lang = HttpContext.Current.Request["lang"];
                b.price = Convert.ToDouble(HttpContext.Current.Request["price"]);
                b.title = HttpContext.Current.Request["title"];
                b.year = Convert.ToInt16(HttpContext.Current.Request["year"]);
                return b;
            }
            public List<book> readXMl()
            {
                List<book> ls = new List<book> { };
               
                //1.载入xml
                XmlDocument doc = new XmlDocument();
                doc.Load(xmlPath);
          
                //2.获取文档下第一个子类的所以子类
                XmlNodeList listNode = doc.SelectSingleNode("bookstore").ChildNodes;
    
                //3.遍历子类
                foreach (XmlNode books in listNode)
                {
                    book b = new book();                
                    b.Id = Convert.ToInt16(books.Attributes["id"].InnerText);
                    b.category = books.Attributes["category"].InnerText;
                    b.title = books["title"].InnerText;
                    b.lang = books["title"].Attributes["lang"].InnerText;
                    b.author = books["author"].InnerText;
                    b.year = Convert.ToInt16(books["year"].InnerText);
                    b.price = Convert.ToDouble(books["price"].InnerText);
    
                    ls.Add(b);
                }
    
                return ls;
            }
            public book readXMLById()
            {
                book b = getModel();
    
                //需要查询数据的Id
                b.Id = Convert.ToInt16(HttpContext.Current.Request["id"]);
    
                XmlDocument root = new XmlDocument();
                root.Load(xmlPath);
    
                XmlNode xml = root.SelectSingleNode("bookstore");
                XmlNodeList listnode = xml.ChildNodes;
    
                //遍历bookstore下的节点
                foreach (XmlNode i in listnode)
                {
                    //获取每一个book的属性Id对比是否=需要查询的值
                    if (i.Attributes["id"].InnerText == b.Id.ToString())
                    {
                        b.category = i.Attributes[0].InnerText;
                        b.title = i["title"].InnerText;
                        b.lang = i["title"].Attributes["lang"].InnerText;
                        b.author = i["author"].InnerText;
                        b.year = Convert.ToInt16(i["year"].InnerText);
                        b.price = Convert.ToDouble(i["price"].InnerText);
                    }
                }
    
    
                return b;
    
            }
            public bool WriteXml()
            {
                bool isValue = false;
                try
                {
                    //设置模型类,只是为了更好的看到数据
                    book b = getModel();
    
                    //创建xml文件
                    XmlDocument xml = new XmlDocument();
                    xml.Load(xmlPath);
    
                    //最高级树
                    XmlNode root = xml.SelectSingleNode("bookstore");
                    int id = Convert.ToInt16(root.LastChild.Attributes["id"].InnerText) + 1;
    
                    //二级子节点
                    XmlElement node = xml.CreateElement("book");
                    node.SetAttribute("category", b.category);
                    node.SetAttribute("id", id.ToString());
    
                    //三级子节点
                    XmlElement n1 = xml.CreateElement("title");
                    n1.SetAttribute("lang", b.lang);
                    n1.InnerText = b.title;
    
                    XmlElement n2 = xml.CreateElement("author");
                    n2.InnerText = b.author;
    
                    XmlElement n3 = xml.CreateElement("year");
                    n3.InnerText = b.year.ToString();
    
                    XmlElement n4 = xml.CreateElement("price");
                    n4.InnerText = b.price.ToString();
    
                    //三级添加到二级
                    node.AppendChild(n1);
                    node.AppendChild(n2);
                    node.AppendChild(n3);
                    node.AppendChild(n4);
    
                    //二级添加到一级
                    root.AppendChild(node);
    
                    //把文件保存到路径
                    xml.Save(xmlPath);
                    isValue = true;
                }
                catch (Exception e)
                {
                    HttpContext.Current.Response.Write(e);
                }
                return isValue;
    
    
            }
            public bool delXMLById()
            {
                bool isValue = false;
                book b = getModel();
                b.Id = Convert.ToInt16(HttpContext.Current.Request["id"]);
                //以上为获取数据
    
                XmlDocument root = new XmlDocument();
                root.Load(xmlPath);
    
                XmlNode xml = root.SelectSingleNode("bookstore");
                XmlNodeList listnode = xml.ChildNodes;
                foreach (XmlNode i in listnode)
                {
                    if (i.Attributes["id"].InnerText.ToString() == b.Id.ToString())
                    {
                        xml.RemoveChild(i);
                        root.Save(xmlPath);
                        isValue = true;
                    }
                }
    
                return isValue;
            }
            public bool upXMLByModel()
            {
                book b = getModel();
                bool isValue = false;
                b.Id = Convert.ToInt16(HttpContext.Current.Request["id"]);
                //以上为获取数据:request[""]
    
                XmlDocument root = new XmlDocument();
                root.Load(xmlPath);
                XmlNode xml = root.SelectSingleNode("bookstore");
                XmlNodeList xs = xml.ChildNodes;
    
                foreach (XmlNode x in xs)
                {
                    if (x.Attributes["id"].InnerText.ToString() == b.Id.ToString())
                    {
                        XmlElement node = x as XmlElement;
                        node.SetAttribute("category", b.category);
    
                        //三级树
                        XmlElement n1 = node.SelectSingleNode("title") as XmlElement;
                        n1.SetAttribute("lang", b.lang);
                        n1.InnerText = b.title;
    
                        XmlElement n2 = node.SelectSingleNode("author") as XmlElement;
                        n2.InnerText = b.author;
    
                        XmlElement n3 = node.SelectSingleNode("year") as XmlElement;
                        n3.InnerText = b.year.ToString();
    
                        XmlElement n4 = node.SelectSingleNode("price") as XmlElement;
                        n4.InnerText = b.price.ToString();
    
                        root.Save(xmlPath);
                        isValue = true;
                    }
                }
                return isValue;
            }
    View Code

        3.2 linq操作

    4.代码包

    http://pan.baidu.com/s/1b6ReEU

  • 相关阅读:
    2015第14周四
    2015第14周三
    2015第14周二
    2015第14周一
    2015第13周日
    2015第13周六
    2015第13周五
    2015第13周四
    2015第13周三
    2015第13周二
  • 原文地址:https://www.cnblogs.com/0to9/p/5701950.html
Copyright © 2011-2022 走看看