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;
        }

3.2 linq操作

4.代码包

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

时间: 2024-10-14 14:15:27

net对XML增删改查的相关文章

java使用dom4j操作XML增删改查-超简洁

一.前言 1.使用工具:eclipse    环境:JDK-11 2.类说明:共四个类:Zen   |  Shan  |   Gai   |   Cha   (一个类只做一件事,简单明了) 3.引用jar包:dom4j-1.6.1.jar 4.反馈方式:邮箱 [email protected] 5.使用的源XML名为:Humen.xml  内容如下 二.源码 1.在源XML基础上添加新的 节点.属性.文本内容 /** * 作者:向家康 * 版权所有 禁止转发 */package 正式版.XML.

.net xml 增删改查基础复习及干货分享

今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机会并不多,今天既然碰到了,就再温故知新一下吧.... xml简述 xml被设计用来传输和存储数据.(html被设计用来显示数据) xml指可扩展标记语言(Extensible Markup Language) xml是一种标记语言,很类似html xml的设计宗旨是传输数据,而非显示数据 xml标签

xml 增删改查基础复习及干货分享(日后留用)

xml被设计用来传输和存储数据.(html被设计用来显示数据) xml指可扩展标记语言(Extensible Markup Language) xml是一种标记语言,很类似html xml的设计宗旨是传输数据,而非显示数据 xml标签没有被预定义.您需要自行定义标签 xml被设计为具有自我描述性 xml是w3c的推荐标准 C#操作XML的基本操作:增删改查 demo示例代码: <?xml version="1.0" encoding="utf-8"> &

javascript操作xml(增删改查)例子代码

包括了stu.hta(是HTML应用程序);      stu.xml 注意下面的HTML代码必须保存为后缀名为hta否则当对XML文件进行操作(增删改)的时候就会提示没有权限!! 文件stu.hta代码如下: 代码 <html><head><title> 数据岛的显示 </title><style type="text/css">#findPanel{ position:absolute; width:220px; bord

Linq to XML 增删改查

Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作.C#访问XML文件的常用类:XmlDocument,XmlElement,XmlAttribute,XmlNode,XmlText等; Linq to XML 中的常用类 :XDocument,XElement,XAttribute. 废话不多说了,直接上代码: xml文件数据格式如下 public class DataBaseInfo { public str

C#操作XML增删改查

XML文件是一种常用的文件格式,不管是B/S还是C/S都随处可见XML的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用.微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件. “在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型

XML 增删改查

<?php $xmlpatch = 'index.xml'; $_id = '1'; $_title = 'title1'; $_content = 'content1'; $_author = 'author1'; $_sendtime = 'time1'; $_htmlpatch = '1.html'; $doc = new DOMDocument('1.0', 'utf-8'); $doc -> formatOutput = true; $root = $doc -> create

Oracle XmlType实现XML增删改查

假设XML的内容如下: <员工列表> <员工 身份证号="2203021977XXXXXXX" 姓名="LYF" 性别="1" 出生日期="1977-10-1" 年龄="38"/> <员工 身份证号="2201831980XXXXXXX" 姓名="TLM" 性别="0" 出生日期="1980-10-16&qu

Linq To Xml操作XML增删改查

对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XDocument.类XElement:本实例是在控制台程序运行,所以对加载的XML文件路径要注意,若XML文件不是代码自运创建时要设置其"复制到输出目录"-始终复制 1:首先看一下实例要加载的XML文件格式: <?xml version="1.0" encoding