项目添加XML文件:FaceXml.xml,并复制到输出目录

FaceXml.xml

<?xml version="1.0" encoding="utf-8"?>

<faces>
<face>
<faceid></faceid>
<facebyte>/facebyte>
</face>
</faces>

项目添加XmlHelper帮助类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace AvoidMisplace
{
public class XmlHelper
{
//项目输出目录的FaceXml.xl文件位置
public static string facepath = AppDomain.CurrentDomain.BaseDirectory + "FaceXml.xml";

//查询是否存在faceid值为num的节点
public static bool QueryFaceXml(string num)
{
try
{
XDocument xml = XDocument.Load(facepath);
XElement face = (from item in xml.Element("faces").Elements()
where item.Element("faceid").Value == num
select item).SingleOrDefault();
if (face != null)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
return false;
}
}

//获取所有faces节点下facebyte值
public static List<string> GetFaceXml()
{
try
{
XDocument xml = XDocument.Load(facepath);
var query = (from item in xml.Element("faces").Elements()
select item.Element("faceid").Value).ToList();
return query;
}
catch (Exception)
{
return null;
}
}

//查询faceid值为num的节点对应facebyte值,
public static byte[] ReadFaceXml(string num)
{
try
{
XDocument xml = XDocument.Load(facepath);
var query = (from item in xml.Element("faces").Elements()
where item.Element("faceid").Value == num
select item).SingleOrDefault();
return query.Element("facebyte").Value;
}
catch (Exception ex)
{
return null;
}
}

//新增一个face节点写入键值对
public static bool WriteFaceXml(string num, byte[] array)
{
try
{
XDocument xml = XDocument.Load(facepath);
XElement face = new XElement("face", new XElement("faceid", num), new XElement("facebyte", array));
xml.Element("faces").Add(face);
xml.Save(facepath);
//LogHelper.Debug("xml添加:" + num + ",成功");
return true;
}
catch (Exception ex)
{
//LogHelper.Error("xml添加:" + num + "," + ex.Message);
return false;
}
}

//删除faceid值为num的节点
public static bool DelFaceXml(string num)
{
try
{
XDocument xml = XDocument.Load(facepath);
XElement face = (from item in xml.Element("faces").Elements()
where item.Element("faceid").Value == num
select item).SingleOrDefault();
if (face != null)
{
face.Remove();
xml.Save(facepath);
//LogHelper.Debug("xml删除:" + num + ",成功");
return true;
}
else
{
//LogHelper.Debug("xml无:" + num);
return false;
}
}
catch (Exception ex)
{
//LogHelper.Error("xml删除:" + num + "," + ex.Message);
return false;
}
}

}
}

C# 本地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. xml 文件的增删改查

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

  7. java对xml文件做增删改查

    http://www.cnblogs.com/wangchenyang/archive/2011/08/23/2150530.html http://www.blogjava.net/weishuan ...

  8. 基于SpringMVC的文件(增删改查)上传、下载、更新、删除

    一.项目背景 摘要:最近一直在忙着项目的事,3个项目过去了,发现有一个共同的业务,那就是附件的处理,附件包括各种文档,当然还有图片等特殊文件,由于时间的关系,每次都是匆匆忙忙的搞定上线,称这项目的空档 ...

  9. MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

    目录(?)[-] 二SQL语句映射文件2增删改查参数缓存 select insert updatedelete sql parameters 基本类型参数 Java实体类型参数 Map参数 多参数的实 ...

随机推荐

  1. 聊聊HTML5中的Web Notification桌面通知

    有的时候我们会在桌面右下角看到这样的提示: 这种桌面提示是HTML5新增的 Web Push Notifications 技术. Web Notifications 技术使页面可以发出通知,通知将被显 ...

  2. [学习笔记] MySQL入门

    一.MySQL的安装与简单使用 ubuntu16.04下安装MySQL: sudo apt-get update sudo apt-get install mysql-server mysql-cli ...

  3. 0 ElasticSearch

    注意事项 需要jdk环境1.7以上 Elasticsearch Kibana 的下载地址统一为https://www.elastic.co/downloads/ 问题排查可以登录https://dis ...

  4. 【JDK】JDK源码-Queue, Deque

    概述 Queue 和 Deque 都是接口.其中 Queue 接口定义的是一个队列,它包含队列的基本操作:入队(enqueue)和出队(dequeue). Deque 接口继承自 Queue 接口,表 ...

  5. JavaSE(一)Java程序的三个基本规则-组织形式,编译运行,命名规则

    一.Java程序的组织形式       Java程序是一种纯粹的面向对象的程序设计语言,因此Java程序必须以类(class)的形式存在,类(class)是Java程序的最小程序单位.       J ...

  6. LeetCode :1.两数之和 解题报告及算法优化思路

    最近开始重拾算法,在 LeetCode上刷题.顺便也记录下解题报告以及优化思路. 题目链接:1.两数之和 题意 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 ...

  7. Kafka消息队列初识

    一.Kafka简介 1.1 什么是kafka kafka是一个分布式.高吞吐量.高扩展性的消息队列系统.kafka最初是由Linkedin公司开发的,后来在2010年贡献给了Apache基金会,成为了 ...

  8. 【算法】【查找】二分法 Bisection

    #include<stdio.h> int main(){ ,,,,,,,,,,,,,,}; ; //长度 ; //要查找到的值 int Bisection(int x,int* a,in ...

  9. idea+Spring+Mybatis+jersey+jetty构建一个简单的web项目

    一.先使用idea创建一个maven项目. 二.引入jar包,修改pom.xml <dependencies> <dependency> <groupId>org. ...

  10. 一个web前端开发者的日常唠叨

    时间飞逝,距离上一次更新博客已经过去了三个月,上一篇博客的发布时间停留在了4月4日. 近来三个月没有更新博客,深感抱歉和愧疚.停更博客就意味着学习的越来越少,作为一个普通的前端开发者来说这是万万不可取 ...