项目添加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. selenium Java中常见等待的几种形式

    前言 在自动化测试中,我们经常会碰到编写脚本过程中操作某个元素的时候, 需要等待页面加载完成后,才能对元素操作,否则会报错,提示页面元素不存在异常,我们需要等待元素加载完成后,才能继续操作,而Sele ...

  2. 剖析std::function接口与实现

    目录 前言 一.std::function的原理与接口 1.1 std::function是函数包装器 1.2 C++注重运行时效率 1.3 用函数指针实现多态 1.4 std::function的接 ...

  3. 加深对C#数据类型的认识

    值类型: 值类型源于System.Value家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型 所在的内存区域称之为栈(Stack),只要在代码中修改它,就会在内存区域保存这个值. ...

  4. Docker 容器高级操作[Docker 系列-3]

    关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. 上篇文章向读者介绍了一个 Nginx 的例子,对于 Nginx 这样一个容器而言,当它启动成功后,我们 ...

  5. 用python绘制漂亮的图形

    先看效果,没有用任何绘图工具,只是运行了一段python代码. 代码如下: _ = ( 255, lambda V ,B,c :c and Y(V*V+B,B, c -1)if(abs(V)<6 ...

  6. UE4中UMG与C++交互 页面文本修改

    在UE4中,有两种方式创建ui,一种是使用slate的方式,一种是UMG,UMG是slate的封装,是一个可视化的ui编辑器.slate则是纯c++方式(之前实验过一次slate创建页面,代码相当麻烦 ...

  7. 从动态代理到Spring AOP(中)

    一.前言 上一章节主要介绍了JDK动态代理和CGLIB动态代理:https://www.cnblogs.com/GrimMjx/p/11194283.html 这一章主要结合我们之前学习的动态代理的基 ...

  8. Mobile game forensics

    My friend Carrie'd like to know "Garena 传说对决" violates any mobile risks such as insecure d ...

  9. 48.QT-网络通信讲解1

    网络概念 MAC地址(硬件地址) 网络IP地址(如192.168.1.101) 网络端口(实现多路通信,用来给不同应用程序来区分使用,范围0~65535,比如浏览网页服务(80端口), FTP服务(2 ...

  10. 如何创建Github创库

    重点:利用Markdown语言写简单的日常使用的文本 基础写作和语法格式 本篇文章的内容来源于Github的基础写作帮助.如果在观看时有什么问题,可以直接查阅源文件.另外需要说明的是Git对Markd ...