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增删改查的更多相关文章

  1. 使用python操作XML增删改查

    使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...

  2. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

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

    今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...

  4. c# XML增删改查

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. Linq to XML 增删改查

    Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作.C#访问XML文件的常用类:XmlDocument,XmlEle ...

  6. XML 增删改查

    <?php $xmlpatch = 'index.xml'; $_id = '; $_title = 'title1'; $_content = 'content1'; $_author = ' ...

  7. c#操作xml增删改查

    1.首先新建一个xml文件(Root是我写上的) 2. 3.直接上代码,更直观 (1)初始化xml /// <summary> /// 初始化xml /// </summary> ...

  8. Linq To Xml操作XML增删改查

    对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...

  9. 4.Linq To Xml操作XML增删改查

    转自https://www.cnblogs.com/wujy/p/3366812.html 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO X ...

随机推荐

  1. CodeSmith连接不上MySql数据库的解决办法

    下载地址是http://dev.mysql.com/downloads/mirror.php?id=403020 请先注册登录后才能下载mysql-connector-net-6.3.7.msi这个文 ...

  2. android加固系列—2.加固前先要学会破解,调试内存值修改程序走向

    [版权所有,转载请注明出处.出处:http://www.cnblogs.com/joey-hua/p/5138585.html] 因公司项目需要对app加固,经过本人数月的研究,实现了一套完整的仿第三 ...

  3. android am命令以及hotkey文件的编写

    1.拨打电话:am start -a android.intent.action.CALL -d tel:10086 这里-a表示动作,-d表述传入的数据,还有-t表示传入的类型. 2. 打开一个网页 ...

  4. Android性能优化的浅谈

    一.概要: 本文主要以Android的渲染机制.UI优化.多线程的处理.缓存处理.电量优化以及代码规范等几方面来简述Android的性能优化 二.渲染机制的优化: 大多数用户感知到的卡顿等性能问题的最 ...

  5. Android微信登陆

    前言 分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下. 声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.co ...

  6. iOS tableView 静态单元格的实现

    本文转自:http://home.cnblogs.com/u/wendingding/ iOS开发UI篇—简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一 ...

  7. iOS KVO概述

    iOS KVO概述 面试中经常会被问到:什么是KVO?这个问题既然出现概率这么大,那么我们就来详细讲一讲到底什么是KVO.下次再有面试官问你的时候,你就可以娓娓道来,以彰显高逼格 概述 问:什么是KV ...

  8. 编写可测试的JavaScript代码

    <编写可测试的JavaScript代码>基本信息作者: [美] Mark Ethan Trostler 托斯勒 著 译者: 徐涛出版社:人民邮电出版社ISBN:9787115373373上 ...

  9. Bootstrap弹出框(modal)垂直居中

    最近在做一个eit项目,由于此项目里面一些框架要遵循nttdata的一些规则,故用到了Bootstrap这个东东,第一次碰到这个东东,有很大抵触,觉得不好,但用起来我觉得和别的弹出框真没什么两样.废话 ...

  10. flume架构初接触

    flume优点 1.存储数据到任何中央数据库 2.进入数据速率大于写出速率,可以起到缓存作用,保证流的平稳 3.提供文本式路由 4.支持事务 5.可靠.容错.可伸缩.可定制.可管理 put的缺点 1. ...