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 ...
随机推荐
- (转)關於flashback query的ORA-01466錯誤
摘自:http://blog.sina.com.cn/s/blog_70a2bdb80100pqid.html 使用Oracle 10g 新特性flashback query來查詢過去修改並已提交的記 ...
- 关于Layouts的分类
ViewGroup ---------------------------------LinearLayout.Relative Layout. AdapterView --------------- ...
- ural 1020 Rope
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> # ...
- 基本排序算法:Python实现
基本排序算法,包括冒泡排序,插入排序,选择排序,堆排序,快速排序等. [冒泡排序] 复杂度是n*n #coding:utf8 #author:HaxtraZ #description:冒泡排序 def ...
- UNION ALL vs UNION
一直没意识到它们之间的区别,只知道UNION ALL在性能上优于UNION,忽略一个很重要的区别:UNION会去掉重复的行,而UNION ALL是包括所有行.
- HDU_2017——统计数字字符出现的个数
Problem Description 对于给定的一个字符串,统计其中数字字符出现的次数. Input 输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数 ...
- MD中bitmap源代码分析--入题概述
在MD模块中,各级raid都使用的一份bitmap的源码,也就是说共用一种bitmap的流程,下面以raid1的使用为例来分析bitmap的工作原理. 在使用raid1磁盘阵列的时候,对于数据的可靠性 ...
- 近 100 个 Linux 常用命令大全
1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出 ...
- UUID详解
什么是UUID? UUID是Universally Unique Identifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符.UUID具有以下涵义: 经由一定的算法 ...
- Failed to start SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse
在centos7上安装nginx时,有时会遇见如题所示的nginx启动报错,一般会出现在编写完nginx启动脚本以后试着启动nginx时出现 这里其实没什么什么问题,只是很多时候我们都先用/usr/l ...