最近学习了利用XmlDocument对象对xml进行增删改读操作,就写了一个小的例子记录下来,加深印象,以后忘了也可以找出来看看。

xml文件:

 <?xml version="1.0" encoding="utf-8"?>
<Users>
<User Id="1">
<Name>吴奇隆</Name>
<Sex>1</Sex>
<Phone>888888</Phone>
</User>
<User Id="2">
<Name>刘诗诗</Name>
<Sex>0</Sex>
<Phone>666999</Phone>
</User>
<User Id="3">
<Name>刘德华</Name>
<Sex>1</Sex>
<Phone>999999</Phone>
</User>
<User Id="4">
<Name>王祖贤</Name>
<Sex>0</Sex>
<Phone>888899</Phone>
</User>
<User Id="5">
<Name>吴倩莲</Name>
<Sex>0</Sex>
<Phone>888999</Phone>
</User>
<User Id="6">
<Name>张卫健</Name>
<Sex>1</Sex>
<Phone>666888</Phone>
</User>
<User Id="7">
<Name>关之琳</Name>
<Sex>0</Sex>
<Phone>888666</Phone>
</User>
<User Id="8">
<Name>张敏</Name>
<Sex>0</Sex>
<Phone>888866</Phone>
</User>
<User Id="9">
<Name>梁朝伟</Name>
<Sex>1</Sex>
<Phone>888889</Phone>
</User>
<User Id="10">
<Name>李连杰</Name>
<Sex>1</Sex>
<Phone>888886</Phone>
</User>
<User Id="11">
<Name>袁洁莹</Name>
<Sex>0</Sex>
<Phone>666999</Phone>
</User>
</Users>

xml文件对应的类:

  public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Sex { get; set; }
public string Phone { get; set; } }

前台页面用的是Bootstrap Table

前台代码:

 <!DOCTYPE html>

 <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link href="~/scripts/bootstrap-table/css/bootstrap.css" rel="stylesheet" />
<link href="~/scripts/bootstrap-table/css/bootstrap-table.css" rel="stylesheet" />
<script src="~/scripts/bootstrap-table/js/jquery-1.10.2.js"></script>
<script src="~/scripts/bootstrap-table/js/bootstrap.js"></script>
<script src="~/scripts/bootstrap-table/js/bootstrap-table.js"></script>
<script src="~/scripts/bootstrap-table/js/bootstrap-table-zh-CN.js"></script>
<script type="text/javascript">
$(function () {
$("#table").bootstrapTable({
toolbar: '#toolbar',//工具栏
pagination: true,//是否显示分页条
pageNumber: 1,//首页页码
pageSize: 10,//每页条数
pageList: [10, 20, 30],//可供选择的页面数据条数
url: '/UserManager/GetUsers',//获取数据的url
columns: [
{
checkbox: true//设置复选框
},
{
field: 'Id',
title: '编号'
},
{
field: 'Name',
title: '姓名'
}, {
field: 'Sex',
title: '性别',
formatter: function (value, row, index) {
if (value == "1") {
return '男';
} else {
return '女';
}
}
}, {
field: 'Phone',
title: '电话'
}, {
field: 'operate',
title: '操作',
formatter: function (value,row,index) {
return '<a href="javascript:void(0)" onclick="deleteUser(' + row.Id + ')">删除</a>'
}
}]
});
});
//删除
function deleteUser(id) {
if (confirm("你确定要删除吗?")) {
$.get("/UserManager/DeleteUser?Id=" + id, null, function (data) {
if (data == "ok") {
$("#table").bootstrapTable('refresh');
} else {
alert("删除失败!");
}
})
}
}
//添加
function Add() {
var id = $("#uid").val();
var name = $("#name").val();
var sex = $("#sex").val();
var phone = $("#phone").val();
$.post("/UserManager/AddUser", {Id:id, Name: name, Sex: sex, Phone: phone }, function (data) {
if (data == "ok") {
$('#addModal').modal('hide');
$("#table").bootstrapTable('refresh');
$("#uid").val("");
$("#name").val("");
$("#sex").val("");
$("#phone").val("");
} else {
alert("添加失败!");
}
});
}
//修改
function Edit() {
var id = $("#editId").val();
var name=$("#editName").val();
var sex= $("#editSex").val();
var phone = $("#editPhone").val();
$.post("/UserManager/EditUser", { Id: id, Name: name, Sex: sex, Phone: phone }, function (data) {
if (data == "ok") {
$('#editModal').modal('hide');
$("#table").bootstrapTable('refresh');
$("#editId").val("");
$("#editName").val("");
$("#editSex").val("");
$("#editPhone").val("");
} else {
alert("修改失败!");
}
});
}
//显示修改
function showEdit() {
var row = $("#table").bootstrapTable('getSelections');
if (row.length<=0) {
alert("请选择你要修改的行!");
return;
}
if (row.length > 1) {
alert("每次只能修改一行数据!");
return;
}
$("#editId").val(row[0].Id);
$("#editName").val(row[0].Name);
$("#editSex").val(row[0].Sex);
$("#editPhone").val(row[0].Phone);
$("#editModal").modal('show');
}
//批量删除
function deleteRows() {
var row = $('#table').bootstrapTable('getSelections');
if (row.length > 0) {
if (confirm("你确定要删除吗?")) {
var ids = $.map($('#table').bootstrapTable('getSelections'), function (row) {
return row.Id;
});
$.post("@Url.Action("DeleteUsers", "UserManager")", { ids:ids }, function (data) {
if (data == "ok") {
$('#table').bootstrapTable('remove', { field: 'Id', values: ids });
} else {
alert("删除失败");
}
});
}
} else {
alert("请选择你要删除的行!");
}
}
</script>
</head>
<body>
<table id="table"></table>
<div>
<!--添加 Modal -->
<div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">添加用户</h4>
</div>
<div class="modal-body">
<label for="name">编号:</label>
<input type="text" class="form-control" id="uid" placeholder="请输入编号">
<label for="name">姓名:</label>
<input type="text" class="form-control" id="name" placeholder="请输入姓名">
<label for="name">性别:</label>
<select id="sex" class="form-control">
<option selected>--请选择--</option>
<option value="1">男</option>
<option value="0">女</option>
</select>
<label for="name">电话:</label>
<input type="text" class="form-control" id="phone" placeholder="请输入电话">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="Add();">保存</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div>
<div>
<!-- 修改Modal -->
<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">修改用户</h4>
</div>
<div class="modal-body">
<label for="name">编号:</label>
<input type="text" class="form-control" readonly id="editId" >
<label for="name">姓名:</label>
<input type="text" class="form-control" id="editName" >
<label for="name">性别:</label>
<select id="editSex" class="form-control">
<option>--请选择--</option>
<option value="1">男</option>
<option value="0">女</option>
</select>
<label for="name">电话:</label>
<input type="text" class="form-control" id="editPhone">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" onclick="Edit();">保存</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div> <div class="btn-group" id="toolbar">
<button type="button" class="btn btn-default glyphicon glyphicon-pencil" onclick="showEdit();">修改</button>
<button type="button" class="btn btn-default glyphicon glyphicon-trash" onclick="deleteRows();">批量删除</button>
<button type="button" class="btn btn-default glyphicon glyphicon-plus" data-toggle="modal" data-target="#addModal" >添加</button>
</div> </body>
</html>

后台代码:

   public class UserManagerController : Controller
{
#region 数据展示页面
/// <summary>
/// 数据展示页面
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
return View();
}
#endregion
#region 读取xml数据
/// <summary>
/// 读取xml数据
/// </summary>
/// <returns></returns>
public ActionResult GetUsers()
{
List<User> list = new List<User>();
string path = Server.MapPath("~/xmlfile/User.xml");
//创建xml文档对象
XmlDocument doc = new XmlDocument();
//加载xml数据
doc.Load(path);
//获取xml根节点
XmlElement root = doc.DocumentElement;
//判断是否有子节点
if (root.HasChildNodes)
{
foreach (XmlNode node in root)
{
User user = new User();
//获取当前节点属性Id的值
user.Id = Convert.ToInt32(node.Attributes["Id"].Value);
if (node.SelectSingleNode("Name") != null)
{ //获取节点值
user.Name = node["Name"].InnerText;
}
if (node.SelectSingleNode("Sex") != null)
{
user.Sex = Convert.ToInt32(node["Sex"].InnerText);
}
if (node.SelectSingleNode("Phone") != null)
{
user.Phone = node["Phone"].InnerText;
}
list.Add(user);
}
}
return Json(list, JsonRequestBehavior.AllowGet);
}
#endregion
#region 添加
/// <summary>
/// 添加
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public ActionResult AddUser(User user)
{
try
{
XmlDocument doc = new XmlDocument();
string path = Server.MapPath("~/xmlfile/User.xml");
doc.Load(path);
XmlElement root = doc.DocumentElement;
XmlElement xElement = doc.CreateElement("User");
xElement.SetAttribute("Id", user.Id.ToString());
root.AppendChild(xElement);
XmlElement Name = doc.CreateElement("Name");
Name.InnerText = user.Name;
xElement.AppendChild(Name);
XmlElement Sex = doc.CreateElement("Sex");
Sex.InnerText = user.Sex.ToString();
xElement.AppendChild(Sex);
XmlElement Phone = doc.CreateElement("Phone");
Phone.InnerText = user.Phone;
xElement.AppendChild(Phone);
doc.Save(path);
return Content("ok");
}
catch
{
return Content("error");
} }
#endregion
#region 删除
/// <summary>
/// 删除
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public ActionResult DeleteUser(int Id)
{
XmlDocument doc = new XmlDocument();
string path = Server.MapPath("~/xmlfile/User.xml");
doc.Load(path);
XmlElement root = doc.DocumentElement;
XmlNode user = doc.SelectSingleNode("/Users/User[@Id='" + Id + "']");
if (user != null)
{
root.RemoveChild(user); }
doc.Save(path);
return Content("ok");
}
#endregion
#region 修改
/// <summary>
/// 修改
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public ActionResult EditUser(User user)
{
XmlDocument doc = new XmlDocument();
string path = Server.MapPath("~/xmlfile/User.xml");
doc.Load(path);
// XmlElement root = doc.DocumentElement;
XmlNode xNode = doc.SelectSingleNode("/Users/User[@Id='" + user.Id + "']");
if (xNode != null)
{
// xNode.Attributes["Id"].Value = user.Id.ToString();
if (xNode["Name"] != null)
{
xNode["Name"].InnerText = user.Name;
}
if (xNode["Sex"] != null)
{
xNode["Sex"].InnerText = user.Sex.ToString();
}
if (xNode["Phone"] != null)
{
xNode["Phone"].InnerText = user.Phone;
}
}
doc.Save(path);
return Content("ok");
}
#endregion
#region 批量删除
/// <summary>
/// 批量删除
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public ActionResult DeleteUsers(int[] ids)
{ XmlDocument doc = new XmlDocument();
string path = Server.MapPath("~/xmlfile/User.xml");
doc.Load(path);
XmlElement root = doc.DocumentElement;
try
{
for (int i = 0; i < ids.Length; i++)
{
XmlNode xNode = doc.SelectSingleNode("/Users/User[@Id='" + ids[i] + "']");
if (xNode != null)
{
root.RemoveChild(xNode);
}
}
doc.Save(path);
return Content("ok");
}
catch
{
return Content("no");
} }
#endregion
}

最终显示效果:

添加页面:

修改页面:

xml文件的增删改读的更多相关文章

  1. java对xml文件做增删改查------摘录

    java对xml文件做增删改查 package com.wss; import java.io.File;import java.util.ArrayList;import java.util.Lis ...

  2. 使用dom4j对xml文件进行增删改查

    1.使用dom4j技术对dom_demo.xml进行增删改查 首选要下载dom4j的jar包 在官网上找不到,网上搜索了一下在这个链接:http://sourceforge.net/projects/ ...

  3. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  4. Java使用DOM4J对XML文件进行增删改查操作

    Java进行XML文件操作,代码如下: package com.founder.mrp.util; import java.io.File; import java.util.ArrayList; i ...

  5. php对xml文件的增删改查

    源文件<?xml version="1.0" encoding="utf-8"?><root>  <endTime>2016 ...

  6. C# 本地xml文件进行增删改查

    项目添加XML文件:FaceXml.xml,并复制到输出目录 FaceXml.xml <?xml version="1.0" encoding="utf-8&quo ...

  7. C# XML基础入门(XML文件内容增删改查清)

    前言: 最近对接了一个第三方的项目,该项目的数据传输格式是XML.由于工作多年只有之前在医疗行业的时候有接触过少量数据格式是XML的接口,之后就几乎没有接触过了.因此对于XML这块自己感觉还是有很多盲 ...

  8. Qt操作xml文件(增删改功能)

    这个例子是在根据网上博客<Qt数据库(XML)>改写的一个操作XML的实现. 借鉴了很多里面的代码,大家可以结合上面的博客对照,相信你肯定会对XML的操作熟练起来. 我建立的是Qwidge ...

  9. xml 文件的增删改查

    序列化和反序列化helper using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

随机推荐

  1. 洛谷——P2958 [USACO09OCT]木瓜的丛林Papaya Jungle

    P2958 [USACO09OCT]木瓜的丛林Papaya Jungle 题目描述 Bessie has wandered off the farm into the adjoining farmer ...

  2. oracle 替换其中部分内容

    update TABLE_NAME set field =REPLACE(field ,substr(field ,0,1) ,'P') where field is not null ;

  3. MySQL笔记之视图的使用详解

    原文:http://www.jb51.net/article/36363.htm 1.什么是视图 视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门 ...

  4. python sql语句封装连接mysql

    进行了代码优化,欢迎评审 #!/usr/bin/python # -*- coding:utf-8 -*- import logging logging.basicConfig(level=loggi ...

  5. ba resme

    Resume Name: Zhou Heng Gender: Male Email : jackyzhouheng@gmail.com Self Assessment: I have more tha ...

  6. 零基础带你看Spring源码——IOC控制反转

    本章开始来学习下Spring的源码,看看Spring框架最核心.最常用的功能是怎么实现的. 网上介绍Spring,说源码的文章,大多数都是生搬硬推,都是直接看来的观点换个描述就放出来.这并不能说有问题 ...

  7. Saga的实现模式——观察者(Saga implementation patterns – Observer)

    https://lostechies.com/jimmybogard/2013/03/11/saga-implementation-patterns-observer/ 侵删. NServiceBus ...

  8. WebApi单元测试记录

    一.MessageHandler不一定是全局的,也可以只应用到指定的Router上 .定义一个handler // Pipelines HttpMessageHandler affiliateShip ...

  9. Android2017进阶知识点、面试题及答案(精选版)

    前言 没啥好说的,撸起袖子就是干吧! 1 2 JAVA 相关 1.静态内部类.内部类.匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它? 静态内部类:使用static修饰的内 ...

  10. nodeJs的模块依赖

    1.require载入依赖 var http = require('http');//http为路径,可以忽略后缀 2.exports输出依赖 exports.add=add;//add为方法 3.只 ...