XML常用操作
来源:互联网 发布:淘宝装修代码运行不了 编辑:程序博客网 时间:2024/05/20 04:12
本示例用XML文件来代替关系型数据库,主要展示的是对XML文件内容的各种操作;并通过单例模式进行唯一实例化的操作:
1、建立XML文档
<?xml version="1.0" encoding="utf-8"?>
<Students>
<stu id="1">
<name>小谭</name>
<age>21</age>
<sex>男</sex>
</stu>
</Students>
2、建立类似DAL层的数据库访问类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity;
using System.Xml;
namespace DAL
{
public class StudentDAL
{
private static StudentDAL _Instance = null;
public static StudentDAL Instance
{
get {
if (_Instance == null)
{
_Instance = new StudentDAL();
}
return _Instance;
}
}
private string FileName = @"xml文件的路径";
/// <summary>
/// 添加
/// </summary>
/// <param name="stu">学生对象</param>
public void Insert(Student stu)
{
XmlDocument doc = new XmlDocument();
doc.Load(FileName);
XmlNode lastEle = doc.DocumentElement.SelectSingleNode("//stu[last()]");
if (lastEle != null)
{
stu.ID = int.Parse(lastEle.Attributes["id"].Value) + 1;
}
else {
stu.ID = 1;
}
XmlElement stuElement = doc.CreateElement("stu");
stuElement.SetAttribute("id", stu.ID.ToString());
XmlElement name = doc.CreateElement("name");
name.AppendChild(doc.CreateTextNode(stu.Name));
XmlElement age = doc.CreateElement("age");
age.AppendChild(doc.CreateTextNode(stu.Age.ToString()));
XmlElement sex = doc.CreateElement("sex");
sex.AppendChild(doc.CreateTextNode(stu.Sex));
stuElement.AppendChild(name);
stuElement.AppendChild(age);
stuElement.AppendChild(sex);
doc.DocumentElement.AppendChild(stuElement);
doc.Save(FileName);
}
/// <summary>
/// 修改
/// </summary>
/// <param name="stu"></param>
public void Modify(Student stu)
{
XmlDocument doc = new XmlDocument();
doc.Load(FileName);
XmlNode CurrentNode = doc.DocumentElement.SelectSingleNode("//stu[@id="+stu.ID+"]");
if (CurrentNode == null)
{
return;
}
CurrentNode.SelectSingleNode("name").FirstChild.Value = stu.Name;
CurrentNode.SelectSingleNode("age").FirstChild.Value = stu.Age.ToString();
CurrentNode.SelectSingleNode("sex").FirstChild.Value = stu.Sex;
doc.Save(FileName);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="ID"></param>
public void Delete(int ID)
{
XmlDocument doc = new XmlDocument();
doc.Load(FileName);
XmlNode CurrentNode = doc.DocumentElement.SelectSingleNode("//stu[@id=" + ID + "]");
if (CurrentNode == null)
{
return;
}
CurrentNode.ParentNode.RemoveChild(CurrentNode);
doc.Save(FileName);
}
/// <summary>
/// 批量删除
/// </summary>
/// <param name="IDList"></param>
public void Delete(List<int> IDList)
{
XmlDocument doc = new XmlDocument();
doc.Load(FileName);
foreach (var id in IDList)
{
XmlNode CurrentNode = doc.DocumentElement.SelectSingleNode("//stu[@id=" + id + "]");
if (CurrentNode == null)
{
return;
}
CurrentNode.ParentNode.RemoveChild(CurrentNode);
}
doc.Save(FileName);
}
/// <summary>
/// 查询所有
/// </summary>
/// <returns></returns>
public List<Student> Search()
{
List<Student> list = new List<Student>();
XmlDocument doc = new XmlDocument();
doc.Load(FileName);
XmlNodeList nodeList = doc.DocumentElement.SelectNodes("//stu");
foreach (XmlNode item in nodeList)
{
Student stu = new Student();
stu.ID = int.Parse(item.Attributes["id"].Value);
stu.Name = item.SelectSingleNode("name").FirstChild.Value;
stu.Sex = item.SelectSingleNode("sex").FirstChild.Value;
stu.Age = int.Parse(item.SelectSingleNode("age").FirstChild.Value);
list.Add(stu);
}
return list;
}
}
}
- php操作xml,xml 常用
- XML常用操作
- XML常用操作之一
- XML常用操作之一
- XML常用操作
- XML常用操作
- XML常用操作
- XML C#常用操作
- xml 常用操作
- XML 常用操作
- TinyXml 操作XML 常用操作
- Flex XML/XMLList 常用操作
- Flex XML/XMLList 常用操作
- xml中的常用操作示例
- Flex XML/XMLList 常用操作
- Flex XML/XMLList 常用操作
- Flex4 XML/XMLList 常用操作
- 常用的操作xml文档的方法
- SolidWorks二次开发:在程序中获取质量特征里的信息
- javascript计算时间差 天 小时
- MYSQL 时间查询的范围
- 错误:ORA-28002: the password will expire within 7 days 解决方法
- socket 的通信过程
- XML常用操作
- kthread_run()和kthread_stop()函数
- Android移动网络设置
- sdio架构初解
- stm32标准外设库使用详解
- 【转载】 TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
- 折叠分组表格中重用Cell导致的问题
- 保护眼睛的好方法
- insert注入笔记