C# MVC 读取XML,写入XML节点,移除XML节点

C# MVC 读取XML,写入XML节点,移除XML节点

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Xml.Linq;
using Newtonsoft.Json;
using Sds.Application;

namespace Sds.WebApp.ApiControllers
{
    [CustomAuthorizeApi]
    public class XmlController : SdsApiController
    {
        private readonly string path = HttpContext.Current.Server.MapPath("~/sdsWebConfig.xml");
        private readonly XDocument document;
        public XmlController()
        {
            if (System.IO.File.Exists(path))
            {
                document = XDocument.Load(path);
            }
            else
            {
                //获取根节点对象
                document = new XDocument();
                XElement root = new XElement("SDSWEB");
                root.Save(path);
                document = XDocument.Load(path);
            }
        }
        /// <summary>
        /// 设置配置
        /// </summary>
        /// <param name="tagName">配置名称</param>
        /// <param name="value">值</param>
        /// <returns></returns>
        [HttpPost]
        public OperationOutpu SetConfig(XmlModel input)
        {
            try
            {
                XElement root = document.Root;
                XElement xml = root.Element(input.TagName);
                if (xml == null)
                {
                    xml = new XElement(input.TagName);
                    xml.Value = JsonConvert.SerializeObject(input.Value);
                    root.Add(xml);
                }
                else
                {
                    xml.Value = JsonConvert.SerializeObject(input.Value);
                }
                root.Save(path);
                return new OperationOutpu { Status = true };
            }
            catch (Exception e)
            {
                return new OperationOutpu { Status = false, Msg = e.Message };
                throw new Exception(e.Message);

            }
        }
        /// <summary>
        /// 获取配置
        /// </summary>
        /// <param name="tagName">配置名称</param>
        /// <returns></returns>
        [HttpGet]
        public object GetConfig(string tagName)
        {
            //获取到XML的根元素进行操作
            XElement root = document.Root;
            XElement xml = root.Element(tagName);
            if (xml != null)
                return JsonConvert.DeserializeObject(xml.Value);
            else
                return null;
        }
        /// <summary>
        /// 移除配置
        /// </summary>
        /// <param name="tagName">配置名称</param>
        /// <returns></returns>
        [HttpPost]
        public OperationOutpu RemoveConfig(string tagName)
        {
            try
            {
                XElement root = document.Root;
                XElement xml = root.Element(tagName);
                xml.Remove();
                root.Save(path);
                return new OperationOutpu { Status = true };
            }
            catch (Exception e)
            {
                return new OperationOutpu { Status = false, Msg = e.Message };
                throw new Exception(e.Message);
            }
        }
    }
    public class XmlModel
    {
        public string TagName { get; set; }
        public object Value { get; set; }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值