C#操作XML文件实例汇总

针对XML文件的操作是C#程序设计中非常常见的功能。本文即以实例展示了C#操作XML文件的几个常见的示例。具体如下:

1.返回节点下标

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 = 0; i < nodeList.Count; i++)
  {
 if (nodeList[i].ChildNodes[0].InnerText == bname)
 {
   return i;
 }
  }
  return -1;
}

2.遍历数据

/// <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>");
 }
  }
}

3.查找

/// <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 >= 0)
 return nodeList[i];
  else
 return null;
}

4.删除节点

/// <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 >= 0)
  {
 if (attribute.Equals(""))
 {
   root.RemoveChild(nodeList[i]);
 }
 else
 {
   XmlElement xn = (XmlElement)nodeList[i];
   xn.RemoveAttribute(attribute);
 }
  }
  doc.Save(path);
}

5.添加

/// <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 < 0 || i > nodeList.Count-1)//如果小于0或者大于节点长度,默认从最后一个节点添加
  {
 XmlElement newElement = doc.CreateElement(element);//创建元素
 newElement.InnerText = value;//赋值
 newNode.AppendChild(newElement);
  }
  else
  {
 XmlElement newElement = doc.CreateElement(element);
 newElement.InnerText = value;
 nodeList[i - 1].AppendChild(newElement);
  }
  doc.Save(path);
  return true;
}

希望本文所述方法对大家的C#程序设计能有所帮助。

(0)

相关推荐

  • C#针对xml基本操作及保存配置文件应用实例

    本文实例讲述了C#针对xml的基本操作及保存配置文件应用,分享给大家供大家参考.具体方法如下: 引言:这里首先介绍了xml的基本操作,后面写了一个经常用到的xml保存配置文件的实例. xml常用方法: 定义xml文档:XmlDocument xmlDoc = new XmlDocument(); 初始化xml文档:xmlDoc.Load("D:\\book.xml");//找到xml文件 创建根元素:XmlElement xmlElement = xmlDoc.CreateElemen

  • C#实现的XML操作类实例

    本文实例讲述了C#实现的XML操作类.分享给大家供大家参考.具体如下: 这里讲述了C#写的一个XML操作类,包括读取/插入/修改/删除. using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.W

  • C# 操作XML文档 使用XmlDocument类方法

    W3C制定了XML DOM标准.很多编程语言中多提供了支持W3C XML DOM标准的API.我在之前的文章中介绍过如何使用Javascript对XML文档进行加载与查询.在本文中,我来介绍一下.Net中的XmlDocument类.它支持并扩展了W3C XML DOM标准.它将整个XML文档都先装载进内存中,然后再对XML文档进行操作,所以如果XML文档内容过大,不建议使用XmlDocument类,因为会消耗过多内存.对于很大的XML文档,可以使用XmlReader类来读取.因为XmlReade

  • asp.net(C#) Xml操作(增删改查)练习

    web.config配置: 复制代码 代码如下: <appSettings> <add key="xmlFile" value="xml/class.xml"/> </appSettings> <appSettings> <add key="xmlFile" value="xml/class.xml"/> </appSettings> 前台: 复制代码 代

  • C#对XML文件的各种操作实现方法

    XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Language,标准通用标记语言).它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule).任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠

  • c#对xml增删改查操作示例

    已知有一个XML文件(bookstore.xml)如下: 复制代码 代码如下: <?xml version="1.0" encoding="gb2312"?><bookstore><book genre="fantasy" ISBN="2-3631-4"><title>Oberon's Legacy</title><author>Corets, Eva&l

  • C#使用XML序列化操作菜单的方法

    本文实例讲述了C#使用XML序列化操作菜单的方法.分享给大家供大家参考.具体分析如下: 之前的一篇文章<C#递归读取XML菜单数据的方法>没使用XML序列化来操作菜单,而且发现那还有一个问题,就是在XML菜单的某个菜单节点前加上一些注释代码的就不能读取,现在使用XML序列化后可以很方便的读取,故在此写一写. XML菜单的节点代码如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?>   &l

  • c#操作xml文件示例

    1. 新增XML文件 复制代码 代码如下: XMLToolV2 _xmlHelper = new XMLToolV2(@"C:\20140311blogs.xml");//xml保存路径或者读取路径 _xmlHelper.Create("Person", "utf-8");//跟节点名称:person;encode:utf-8 XmlElement _person = _xmlHelper.CreateElec("Name",

  • C# 对XML基本操作代码总结

    具体如下: XML文件:文件在MyDocument文件夹下 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <PersonF xmlns="" Name="(test)work hard work smart!"> <person Name="Person1"> <ID>1</ID> <Na

  • c#对xml的简单操作

    xml文件格式如下:  <?xml version="1.0" encoding="utf-8"?>  <userdata createuser="false">  <dataconnection>  <server>localhost</server>  <uid>sa</uid>  <pwd></pwd>  </dataconne

  • C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

    已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1.插入节点 往节点中插入一个节点: 复制代码 代码如下: XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load("bookstore.xml"); XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找 XmlElement xe1=xmlDoc.CreateElement(

  • c#操作xml帮助类分享(xml增删改查)

    复制代码 代码如下: using System;using System.Collections;using System.Xml; namespace Jb51.Com.XmlDAL{public class XmlHelper{#region 公共变量XmlDocument xmldoc;XmlNode xmlnode;XmlElement xmlelem;#endregion #region 创建Xml文档/// <summary>/// 创建一个带有根节点的Xml文件/// </

随机推荐