• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#操作XML文件实例汇总

C#操作XML文件实例汇总

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#读取xml文件,c#创建xml文件,c#生成xml文件,c#解析xml文件,c#读取xml文件内容等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

针对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;
}

</div>

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

</div>

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;
}

</div>

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

</div>

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;
}

</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#操作XML通用方法汇总
  • C#代码操作XML进行增、删、改操作
  • C#实现的xml操作类完整实例
  • C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
  • C#使用GZipStream解压缩数据文件的方法
  • C#使用DeflateStream解压缩数据文件的方法
  • C#使用文件流读取文件的方法
  • C#自定义处理xml数据类实例
  • C#实现Xml序列化与反序列化的方法
  • C#使用XML序列化操作菜单的方法

相关文章

  • 2017-05-28C#微信开发之获取接口调用凭据
  • 2017-05-28C#调用sql2000存储过程方法小结
  • 2017-05-28C# this关键字的四种用法
  • 2017-05-28C#多线程与跨线程访问界面控件的方法
  • 2017-05-28C#启动windows服务方法的相关问题分析
  • 2017-05-28C#给图片加水印的简单实现方法
  • 2017-05-28C#通过反射获取当前工程中所有窗体并打开的方法
  • 2017-05-28C#基础知识 全面解析可空类型
  • 2017-05-28C# 3DES加密详解
  • 2017-05-28C#绘制中国国旗的方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C# 操作符之二 算数操作符
    • winform天气预报小工具(附源码下载)
    • C#中try...catch的使用与常见面试题分享
    • c# 图片加密解密的实例代码
    • C#中sleep和wait的区别分析
    • C#实现的调用DOS命令操作类实例
    • C#中的多态深入理解
    • 在C#的类或结构中重写ToString方法的用法简介
    • C#获取指定目录最后写入时间的方法
    • c#通过unicode编码判断字符是否为中文示例分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有