xml文件操作
- public static XmlDocument getDoc(String path)//加载xml文档
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(path);
- return doc;
- }
- /// <summary>
- /// 返回找到的节点下标
- /// </summary>
- /// <param name="path">xml文件路径</param>
- /// <param name="bname">书名</param>
- /// <returns></returns>
- public static int getPosition(String path,string node, String bname)
- {
- int i;
- XmlDocument doc = new XmlDocument();
- doc.Load(path);
- XmlNodeList nodeList = doc.SelectSingleNode(node).ChildNodes;
- for (i = ; i < nodeList.Count; i++)
- {
- if (nodeList[i].ChildNodes[].InnerText == bname)
- {
- return i;
- }
- }
- return -;
- }
1.遍历
- /// <summary>
- /// 遍历数据
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- protected void btnRead_Click(object sender, EventArgs e)
- {
- XmlDocument doc = getDoc("books.xml");//加载xml文档,books文件存放于
- foreach (XmlElement root in doc.DocumentElement.ChildNodes)//遍历根的子节点
- {
- Response.Write("<script>document.write('<br/>');</script>");
- Response.Write("<script>document.write('" + root.Name + "');</script>");//节点名root.Name book
- foreach (XmlElement item in root.ChildNodes)
- {
- Response.Write("<script>document.write('" + item.Name + "'+':'+'" + item.InnerText + "');</script>");//输出节点名和文本节点的值
- Response.Write("<script>document.write('<br/>');</script>");
- }
- }
- }
2.查找
- /// <summary>
- /// 查找
- /// </summary>
- /// <param name="path">文件路径</param>
- /// <param name="node">节点</param>
- /// <param name="bname">查找关键字</param>
- /// <returns>XmlNode</returns>
- public static XmlNode Find(string path,string node,string bname)
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(path);//加载xml文档
- XmlNodeList nodeList = doc.SelectSingleNode(node).ChildNodes;
- int i = getPosition(path, node, bname);//
- if (i >= )
- return nodeList[i];
- else
- return null;
- }
3.删除节点
- /// <summary>
- /// 删除元素、属性
- /// </summary>
- /// <param name="path">文件</param>
- /// <param name="node">指定节点的父节点</param>
- /// <param name="attribute">为空时删除节点,否则删除属性</param>
- /// <param name="bname"></param>
- public static void Delete(string path,string node,string attribute,string bname)
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(path);
- XmlNode root = doc.SelectSingleNode(node);
- XmlNodeList nodeList = doc.SelectSingleNode(node).ChildNodes;
- int i = getPosition(path, node, bname);//返回指定的节点下标
- if (i >= )
- {
- if (attribute.Equals(""))
- {
- root.RemoveChild(nodeList[i]);
- }
- else
- {
- XmlElement xn = (XmlElement)nodeList[i];
- xn.RemoveAttribute(attribute);
- }
- }
- doc.Save(path);
- }
4.添加
- /// <summary>
- /// 添加元素值
- /// </summary>
- /// <param name="path"></param>
- /// <param name="node"></param>
- /// <param name="element"></param>
- /// <param name="value"></param>
- /// <param name="i">插入的下标,如果为负,默认从最后一个节点插入</param>
- /// <returns></returns>
- public static bool Add(string path,string node,string element,string value,int i)
- {
- XmlDocument doc = new XmlDocument();
- doc.Load(path);
- XmlNodeList nodeList = doc.SelectNodes(node);
- XmlNode newNode = doc.SelectSingleNode(node).LastChild;
- if (i < || i > nodeList.Count-)//如果小于0或者大于节点长度,默认从最后一个节点添加
- {
- XmlElement newElement = doc.CreateElement(element);//创建元素
- newElement.InnerText = value;//赋值
- newNode.AppendChild(newElement);
- }
- else
- {
- XmlElement newElement = doc.CreateElement(element);
- newElement.InnerText = value;
- nodeList[i - ].AppendChild(newElement);
- }
- doc.Save(path);
- return true;
- }
xml文件操作的更多相关文章
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- C# XML文件操作
C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...
- XML文件操作类--创建XML文件
这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...
- PHP对XML文件操作之属性与方法讲解
DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...
- 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml
数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...
- SpringBatch Sample (三)(XML文件操作)
前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...
- XML文件操作之dom4j
能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...
- C#XML文件操作随笔
以为公司一直没有电源屏厂家协议解析为DevVars相关的软件,手写费时费力还容易出错,用了2天时间做了一个.txt协议文件筛选加并解析成xml文件的工具,总结一下用到的几个知识点 1.LINQ 是一个 ...
- Xml文件操作的其中一个使用方法:
XmlNodeList students = doc.DocumentElement.ChildNodes;//Student节点集合 foreach (XmlNode stu in students ...
- XML文件操作(C#)
XML应用于Web开发的许多方面,常用于简化数据的存储和共享,它的设计宗旨是传输数据,而非显示数据.下面简单介绍一下C#是如何对XML文件进行读取的. 1.首先,建立XML对象并关联XML文件 str ...
随机推荐
- 使用jsoup解析html页面内容案例
public String getFaGuiKuTitles(String type, int page) { String href = "http://info.qd-n-tax.gov ...
- C++面试问题总结
转自:http://blog.csdn.net/wangtengqiang/article/details/8061806 1.static用法 static 的成员函数和成员变量,可直接通过类名:: ...
- Android中的SQLiteOpenHelper类
SQLiteOpenHelper是Android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新.一般的用法是创建SQLiteOpenHelper的子类,并扩张它的onCreate(SQ ...
- 检测IIS应用程序池对象 回收
function RecycleYourAppPool([string] $poolName){ Import-Module WebAdministration #获取所有Application Po ...
- linux c 之signal 和sigaction区别
http://blog.csdn.net/muge0913/article/details/7331129 要对一个信号进行处理,就需要给出此信号发生时系统所调用的处理函数.可以对一个特定的信号(除去 ...
- HDOJ 1163 Eddy's digital Roots(九余数定理的应用)
Problem Description The digital root of a positive integer is found by summing the digits of the int ...
- WC2015流水账
THU那四场考试没考好,只有20+名.这也许是我OI生涯中最后一场吧(已确认是最后一场),真是感慨万千. day0 搬进浙大宿舍404房间(神房间号),四个人一间.中午发现学军伙食相当良心,是我参加的 ...
- Uber明年在中国将继续补贴,并大举进军100个城市!
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- [置顶] 宏途_LCD调试流程.
今天在调试宏途的LCD屏时,开始是开机屏幕不亮,背光都不亮,可能板子已经损坏,一般通过测试电流电压简单验证,(注:硬件引脚没焊好也会引起读lcd id出现错误!!!)出现这个问题一般是因为引脚没焊好, ...
- javaweb笔记之get和post的不同
1 GET方式 1)提交的参数数据会放在请求信息的URL后面.以?开头,多个参数数据以 & 分 割. 2)浏览器的地址会发生改变 3)参数数据的容量不能超过1KB. 4)不适合敏感数据的提交 ...