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. 超人学院二期学员分享hadoop工作经验

    定于2月17日--2月23日的某一天,邀请咱们学员分享一下hadoop工作经验.对于没工作过的同学或者没从事过hadoop工作的同学,抓住机会啊,你可以提前准备自己关心的各种问题! 具体时间请关注QQ ...

  2. C语言ASCII码、运算符优先级、转义字符

  3. 听云数据库管理平台NetopGO简介

    ➠更多技术干货请戳:听云博客 断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改了好多次小毛病,现在已经部署到生产环境上去了. 在刚开始的时候,后端的数据库集群只有10多个节 ...

  4. Mac下载安装Android Studio教程

    今天把公司闲置的一台Mac-mini重装了下系统感觉用着速度还不错,平时上班用的机器USB有些问题,所以打算用这台Mac.以往开发用Intellij Idea就够用,但是这次项目引用的jar包太多,遭 ...

  5. Mac下修改Hosts文件工具——Gas Mask

    这段时间在做公司APP的项目,看到公司开发IOS的同事和我这边联调程序时,经常需要手动修改hosts文件,比较麻烦. 在公司忙,没有来及找,给同事推荐了我当时知道的一个切换hosts文件的工具:sma ...

  6. Team Leader炖完石头汤后干嘛

    在万众创业的互联网年代,挖人组建全明星团队过于奢侈.面对水平参差不齐的团队咋办? 命运真是捉弄,半年前在大美团打工时准备做个NABC的教学项目 ,结果自己就被挖到"Competitors 竞 ...

  7. Android中的单例模式

    定义: 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 使用场景: 确保某一个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该有且只有一 ...

  8. OEM代工厂产品经理个人经历谈

    创业不是一件随随便便的事情! 到2007年时,我已经在上海.广州.东莞三地的工厂打工有十来年了.正是这个时间结点,我也即将做父亲了.打了很久的工后,就开始感到疲倦,做来做去,都是给老板做,也就在这时开 ...

  9. Web API与国际化

    软件国际化是在软件设计和文档开发过程中,使得功能和代码设计能处理多种语言和文化习俗,在创建不同语言版本时,不需要重新设计源程序代码的软件工程方法.这在很多成熟的软件开发平台中非常常见.对于.net开发 ...

  10. Sql Server之旅——第七站 为什么都说状态少的字段不能建索引

    我们在学sqlserver的时候,大多教科书和前辈们都说状态少的字段不要建索引,由此带来的开销还不如不建索引,但是这句话有多少人真的知道, 或者说有多少人真的对此有比较深刻的理解,而不是听别人道听途说 ...