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 ...
随机推荐
- APKTool用法
APKTool是GOOGLE提供的APK编译工具,需要JAVA运行环境,推荐使用JDK1.6或者JDK1.7. 如果你想对APK文件进行修改,那么就不可避免的要使用到APKTool.论坛里有很多关于R ...
- 如何在AD6(altium designer 6.x)中设置PCB大小
做一块板子,体积比较的大(长度有20CM),而AD默认的长度只有15cm,满足不了本人要求.在网上找到了解决方法: 先在Mechanical(机械层,如Mechanical1)下绘制一个板框,也就是你 ...
- 【转】Thunderbird on Ubuntu 12.04 – 调整邮件列表行间距
原文网址:http://www.xuebuyuan.com/414703.html markz@markz-hp6200:~$ cd .thunderbird/ markz@markz-hp6200: ...
- Acdream1157---Segments (CDQ分治)
陈丹琦分治~~~其实一些数据小的时候可以用二维或者多维树状数组做的,而数据大的时候就无力的题目,都可以用陈丹琦分治解决. 题目:由3钟类型操作:1)D L R(1 <= L <= R &l ...
- HDU-3787(字符串模拟)
Problem Description 给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开.现在请计算A+B的结果,并以正常形式输出. Input 输入包含 ...
- Hadoop2.4.1 MapReduce通过Map端shuffle(Combiner)完成数据去重
package com.bank.service; import java.io.IOException; import org.apache.hadoop.conf.Configuration;im ...
- MYSQL存储过程和函数学习笔记
学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆课程笔记的综合. 1. 什么是存储过程和函数 将SQL语句放入一个集合里,然后直接调用存储过程和函数来执行已经定义好的SQL语句,通过存储过程和 ...
- C#中对于接口的实现方式
转载: C#中对于接口的实现方式有隐式接口和显式接口两种: 隐式地实现接口成员创建一个接口,IChinese,包含一个成员 Speak;我们创建一个类Speaker,实现接口Chinese //隐藏式 ...
- mac下Apache添加限速模块mod_bw
官方文档: Apache2 - Mod_bw v0.7 Author : Ivan Barrera A. (Bruce) HomePage : Http://Ivn.cl/apache & h ...
- 解决从github下载web的源代码部署到eclipse的问题
2015年6月2日 天气晴 github官网:https://github.com/ 以下以pdf.js作为案例说明:https://github.com/mozilla/pdf.js 1).点击案例 ...