当前位置:  编程技术>.net/c#/asp.net

C#操作XML文件实例汇总

    来源: 互联网  发布时间:2014-11-02

    本文导语:  针对XML文件的操作是C#程序设计中非常常见的功能。本文即以实例展示了C#操作XML文件的几个常见的示例。具体如下: 1.返回节点下标 public static XmlDocument getDoc(String path)//加载xml文档 { XmlDocument doc = new XmlDocument(); doc.Load(p...

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

1.返回节点下标

public static XmlDocument getDoc(String path)//加载xml文档
{
  XmlDocument doc = new XmlDocument();
  doc.Load(path);
  return doc;
} 
/// 
/// 返回找到的节点下标
/// 
/// xml文件路径
/// 书名
/// 
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.遍历数据

/// 
/// 遍历数据
/// 
/// 
/// 
protected void btnRead_Click(object sender, EventArgs e)
{

  XmlDocument doc = getDoc("books.xml");//加载xml文档,books文件存放于
  foreach (XmlElement root in doc.DocumentElement.ChildNodes)//遍历根的子节点
  {
 Response.Write("document.write('
');"); Response.Write("document.write('" + root.Name + "');");//节点名root.Name book foreach (XmlElement item in root.ChildNodes) { Response.Write("document.write('" + item.Name + "'+':'+'" + item.InnerText + "');");//输出节点名和文本节点的值 Response.Write("document.write('
');"); } } }

3.查找

/// 
/// 查找
/// 
/// 文件路径
/// 节点
/// 查找关键字
/// XmlNode
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.删除节点

/// 
/// 删除元素、属性
/// 
/// 文件
/// 指定节点的父节点
/// 为空时删除节点,否则删除属性
/// 
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.添加

/// 
/// 添加元素值
/// 
/// 
/// 
/// 
/// 
/// 插入的下标,如果为负,默认从最后一个节点插入
/// 
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#程序设计能有所帮助。


    
 
 

您可能感兴趣的文章:

  • c#对象中两种copy操作:深拷贝(Deep Copy)与浅拷贝(Shallow Copy)
  • c#的时间日期操作示例分享(c#获取当前日期)
  • .NET下 c#通过COM组件操作并导出Excel实例代码
  • C#操作txt文件,进行清空添加操作的小例子
  • C#实现装箱与拆箱操作简单实例
  • 浅谈C#互操作的内存溢出问题
  • C# 中的??操作符浅谈
  • c#剪切板操作的简单实例
  • c# 调用Surfer软件,添加引用的具体操作方法
  • c#异步task示例分享(异步操作)
  • c#下注册表操作的一个小细节
  • C#操作CLOB大对象的代码一例
  • c#判断操作系统位数实例代码
  • 一些关于c#与Sql的时间的操作
  • c#判断操作系统位数的示例分享
  • C#中的位操作小结
  • C# 操作符之三元操作符浅析
  • C# Dictionary操作范例(入门新手参考)
  • C#的WebBrowser操作frame实例解析
  • C# Winform 操作 INI 配置文件的实现代码
  • C#程序最小化到托盘图标操作步骤与实现代码
  • Python中列表(list)操作方法汇总
  • SQL字符串以及数字常用操作汇总
  • C#常用GDI+文字操作汇总
  • ThinkPHP关于session的操作方法汇总
  • codeigniter数据库操作函数汇总
  • Jquery操作iframe的方法汇总
  • C语言单链表常见操作汇总
  • jquery操作select中option选项的方法汇总
  • C语言实现顺序表基本操作汇总
  • C# DatagridView常用操作汇总
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python文件操作类操作实例详解
  • PHP实现的连贯操作、链式操作实例
  • 大家帮我推荐些在linux下用c语言对数据库操作编程的实例或资料吧!谢谢!
  • yii操作cookie实例简介
  • 请问如何在自定然义的类中如MyClass,不用new这个操作符来产生一个这个类的实例
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • 数组循环移位操作实例
  • java文件操作代码片断实例实现统计文件中字母出现的个数功能
  • Android对sdcard扩展卡文件操作实例详解
  • C# WinForm中Panel实现用鼠标操作滚动条的实例方法
  • C#文件操作的简单实例
  • VC实现ODBC数据库操作实例解析
  • asp.net操作cookie实例代码
  • Jquery操作radio的简单实例
  • C#读写xml配置文件(LINQ操作实例)
  • jQuery 操作下拉列表框的实例分享
  • asp.net 操作cookie实例详解
  • jquery操作HTML5 的data-*的用法实例分享
  • yii操作session实例简介
  • Python 文件操作技巧(File operation) 实例代码分析
  • C++ Stacks(堆栈) 成员 操作:比较和分配堆栈
  • 谁有操作系统PV操作的例子???谁有操作系统PV操作的例子???谢谢!!
  • C++ Strings(字符串) 成员 Operators:操作符,用于字符串比较和赋值
  • 已安装了Windows操作系统,还想安装Linux。却还想在开机选择操作系统时由Windows引导,请问如何操作。在线等待
  • C++ I/O 成员 flags():操作flags
  • 请问LINUX操作系统是怎样对外围设备进行操作的
  • C++ I/O 成员 width():操作域宽度
  • asp.net操作cookie实例代码 iis7站长之家
  • Xcode介绍及创建工程和工程依赖操作步骤
  • 无操作系统下对U盘的操作
  • MyEclipse如何查看和设置文件编码格式相关操作


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3