net对XML增删改查
Pass:看公司代码,配置下拉框的功能,和下拉框的数字转文字。配置xml里面有下拉的value,name,这样界面直接显示数字,然后转译成中文
1.xml文件格式
- <?xml version="1.0" encoding="utf-8"?>
- <bookstore>
- <book category="COOKING" id="">
- <title lang="en">Everyday Italian</title>
- <author>Giada De Laurentiis</author>
- <year></year>
- <price></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[].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) + ;
- //二级子节点
- 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
net对XML增删改查的更多相关文章
- 使用python操作XML增删改查
使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
- .net xml 增删改查基础复习及干货分享
今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...
- c# XML增删改查
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Linq to XML 增删改查
Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作.C#访问XML文件的常用类:XmlDocument,XmlEle ...
- XML 增删改查
<?php $xmlpatch = 'index.xml'; $_id = '; $_title = 'title1'; $_content = 'content1'; $_author = ' ...
- c#操作xml增删改查
1.首先新建一个xml文件(Root是我写上的) 2. 3.直接上代码,更直观 (1)初始化xml /// <summary> /// 初始化xml /// </summary> ...
- Linq To Xml操作XML增删改查
对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...
- 4.Linq To Xml操作XML增删改查
转自https://www.cnblogs.com/wujy/p/3366812.html 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO X ...
随机推荐
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q63-Q65)
Question 63You are designing a SharePoint 2010 implementation that will be used by a company with a ...
- KVO的底层实现
1.KVO是基于Runtime机制实现的: 2.当某个类的对象的某个属性第一次被观察时,系统会在运行期间动态地创建该类的一个派生类,在这个派生类中重写基类的任何被观察属性的setter方法,派生类在被 ...
- iOS tableviewcell 分割线 偏移和颜色
改变颜色 [_hotProductsTableView setSeparatorColor : kSeparatorColor]; -(void)viewDidLayoutSubviews { [su ...
- TextView 字数限制
给大家推荐一个 无bug的 字数限制 http://blog.csdn.net/u012460084/article/details/50377928
- 【代码笔记】iOS-登陆单例
一,工程图. 二,代码. UserInfo.h #import <Foundation/Foundation.h> @interface UserInfo : NSObject + (id ...
- ios 友盟第三方登录遇到的各种坑。
//未使用pod的点友盟官方文档 http://dev.umeng.com/social/ios/quick-integration 首先pod导入 pod 'UMengSocialCOM', '~& ...
- 结对编程-地铁续(有种上个学期OO的既视感)
我们组比较特殊..三人结对 github:https://github.com/qingchanghan/WPFUI_Metro po一张照片: 石浩然,韩青长.陈彦吉 (台式机真的很高端,分屏贼帅) ...
- H5一二事
先回顾一下WEB技术的几个阶段 Web 1.0 内容为主,主要流行HTML和CSS Web 2.0 动态网页,流行AJAX/JavaScript/DOM H5 时代,WEB开发回归富客户端 那么H5肯 ...
- ORACLE绑定变量隐式转换导致性能问题
年后一次系统升级后,监控数据库的工具DPA发现数据库的Total Wait时间突然飙增,如下截图所示,数据库的总体等待时间对比升级前飙增了非常多 另外就是发现出现了较多的等待事件,主要有latch: ...
- 使用axis调用WebService服务端
由于项目中要调用其他公司的接口,研究了下axis调用webService这种方式,现将代码贴出,以备以后查阅: package com.xbq; import javax.xml.namespace. ...