1. public static XmlDocument getDoc(String path)//加载xml文档
  2. {
  3. XmlDocument doc = new XmlDocument();
  4. doc.Load(path);
  5. return doc;
  6. }
  7. /// <summary>
  8. /// 返回找到的节点下标
  9. /// </summary>
  10. /// <param name="path">xml文件路径</param>
  11. /// <param name="bname">书名</param>
  12. /// <returns></returns>
  13. public static int getPosition(String path,string node, String bname)
  14. {
  15. int i;
  16. XmlDocument doc = new XmlDocument();
  17. doc.Load(path);
  18. XmlNodeList nodeList = doc.SelectSingleNode(node).ChildNodes;
  19. for (i = ; i < nodeList.Count; i++)
  20. {
  21. if (nodeList[i].ChildNodes[].InnerText == bname)
  22. {
  23. return i;
  24. }
  25. }
  26. return -;
  27.  
  28. }

1.遍历

  1. /// <summary>
  2. /// 遍历数据
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. protected void btnRead_Click(object sender, EventArgs e)
  7. {
  8.  
  9. XmlDocument doc = getDoc("books.xml");//加载xml文档,books文件存放于
  10. foreach (XmlElement root in doc.DocumentElement.ChildNodes)//遍历根的子节点
  11. {
  12. Response.Write("<script>document.write('<br/>');</script>");
  13. Response.Write("<script>document.write('" + root.Name + "');</script>");//节点名root.Name book
  14. foreach (XmlElement item in root.ChildNodes)
  15. {
  16. Response.Write("<script>document.write('" + item.Name + "'+':'+'" + item.InnerText + "');</script>");//输出节点名和文本节点的值
  17. Response.Write("<script>document.write('<br/>');</script>");
  18. }
  19. }
  20. }

2.查找

  1. /// <summary>
  2. /// 查找
  3. /// </summary>
  4. /// <param name="path">文件路径</param>
  5. /// <param name="node">节点</param>
  6. /// <param name="bname">查找关键字</param>
  7. /// <returns>XmlNode</returns>
  8. public static XmlNode Find(string path,string node,string bname)
  9. {
  10. XmlDocument doc = new XmlDocument();
  11. doc.Load(path);//加载xml文档
  12. XmlNodeList nodeList = doc.SelectSingleNode(node).ChildNodes;
  13. int i = getPosition(path, node, bname);//
  14. if (i >= )
  15. return nodeList[i];
  16. else
  17. return null;
  18. }

3.删除节点

  1. /// <summary>
  2. /// 删除元素、属性
  3. /// </summary>
  4. /// <param name="path">文件</param>
  5. /// <param name="node">指定节点的父节点</param>
  6. /// <param name="attribute">为空时删除节点,否则删除属性</param>
  7. /// <param name="bname"></param>
  8. public static void Delete(string path,string node,string attribute,string bname)
  9. {
  10. XmlDocument doc = new XmlDocument();
  11. doc.Load(path);
  12. XmlNode root = doc.SelectSingleNode(node);
  13. XmlNodeList nodeList = doc.SelectSingleNode(node).ChildNodes;
  14. int i = getPosition(path, node, bname);//返回指定的节点下标
  15. if (i >= )
  16. {
  17. if (attribute.Equals(""))
  18. {
  19. root.RemoveChild(nodeList[i]);
  20. }
  21. else
  22. {
  23. XmlElement xn = (XmlElement)nodeList[i];
  24. xn.RemoveAttribute(attribute);
  25. }
  26. }
  27.  
  28. doc.Save(path);
  29.  
  30. }

4.添加

  1. /// <summary>
  2. /// 添加元素值
  3. /// </summary>
  4. /// <param name="path"></param>
  5. /// <param name="node"></param>
  6. /// <param name="element"></param>
  7. /// <param name="value"></param>
  8. /// <param name="i">插入的下标,如果为负,默认从最后一个节点插入</param>
  9. /// <returns></returns>
  10. public static bool Add(string path,string node,string element,string value,int i)
  11. {
  12. XmlDocument doc = new XmlDocument();
  13. doc.Load(path);
  14. XmlNodeList nodeList = doc.SelectNodes(node);
  15. XmlNode newNode = doc.SelectSingleNode(node).LastChild;
  16. if (i < || i > nodeList.Count-)//如果小于0或者大于节点长度,默认从最后一个节点添加
  17. {
  18. XmlElement newElement = doc.CreateElement(element);//创建元素
  19. newElement.InnerText = value;//赋值
  20. newNode.AppendChild(newElement);
  21. }
  22.  
  23. else
  24. {
  25. XmlElement newElement = doc.CreateElement(element);
  26. newElement.InnerText = value;
  27. nodeList[i - ].AppendChild(newElement);
  28. }
  29. doc.Save(path);
  30. return true;
  31. }

xml文件操作的更多相关文章

  1. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

  2. C# XML文件操作

    C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...

  3. XML文件操作类--创建XML文件

    这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System. ...

  4. PHP对XML文件操作之属性与方法讲解

    DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definit ...

  5. 7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

     数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDef ...

  6. SpringBatch Sample (三)(XML文件操作)

    前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是 ...

  7. XML文件操作之dom4j

    能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的 所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/ dom4 ...

  8. C#XML文件操作随笔

    以为公司一直没有电源屏厂家协议解析为DevVars相关的软件,手写费时费力还容易出错,用了2天时间做了一个.txt协议文件筛选加并解析成xml文件的工具,总结一下用到的几个知识点 1.LINQ 是一个 ...

  9. Xml文件操作的其中一个使用方法:

    XmlNodeList students = doc.DocumentElement.ChildNodes;//Student节点集合 foreach (XmlNode stu in students ...

  10. XML文件操作(C#)

    XML应用于Web开发的许多方面,常用于简化数据的存储和共享,它的设计宗旨是传输数据,而非显示数据.下面简单介绍一下C#是如何对XML文件进行读取的. 1.首先,建立XML对象并关联XML文件 str ...

随机推荐

  1. 使用jsoup解析html页面内容案例

    public String getFaGuiKuTitles(String type, int page) { String href = "http://info.qd-n-tax.gov ...

  2. C++面试问题总结

    转自:http://blog.csdn.net/wangtengqiang/article/details/8061806 1.static用法 static 的成员函数和成员变量,可直接通过类名:: ...

  3. Android中的SQLiteOpenHelper类

    SQLiteOpenHelper是Android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新.一般的用法是创建SQLiteOpenHelper的子类,并扩张它的onCreate(SQ ...

  4. 检测IIS应用程序池对象 回收

    function RecycleYourAppPool([string] $poolName){ Import-Module WebAdministration #获取所有Application Po ...

  5. linux c 之signal 和sigaction区别

    http://blog.csdn.net/muge0913/article/details/7331129 要对一个信号进行处理,就需要给出此信号发生时系统所调用的处理函数.可以对一个特定的信号(除去 ...

  6. HDOJ 1163 Eddy's digital Roots(九余数定理的应用)

    Problem Description The digital root of a positive integer is found by summing the digits of the int ...

  7. WC2015流水账

    THU那四场考试没考好,只有20+名.这也许是我OI生涯中最后一场吧(已确认是最后一场),真是感慨万千. day0 搬进浙大宿舍404房间(神房间号),四个人一间.中午发现学军伙食相当良心,是我参加的 ...

  8. Uber明年在中国将继续补贴,并大举进军100个城市!

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. [置顶] 宏途_LCD调试流程.

    今天在调试宏途的LCD屏时,开始是开机屏幕不亮,背光都不亮,可能板子已经损坏,一般通过测试电流电压简单验证,(注:硬件引脚没焊好也会引起读lcd id出现错误!!!)出现这个问题一般是因为引脚没焊好, ...

  10. javaweb笔记之get和post的不同

    1 GET方式 1)提交的参数数据会放在请求信息的URL后面.以?开头,多个参数数据以 & 分 割. 2)浏览器的地址会发生改变 3)参数数据的容量不能超过1KB. 4)不适合敏感数据的提交 ...