C#操作XML非常简单

一是写入:

生明一个xelment 再在它的父节点Add就可以,也可以用生明的节点.SetAttribute("节点名称","节点对应的值");

二是读取:

一样也是先生明再得到其子节点再
                    if (xe.Name == "Contrast")
                   
                        if (xe.GetAttribute("IsSelect") == "true")

即再根据其节点名称 得节点,根据节点属性获取属性值。

 /// <summary>
/// 写操作日志
/// </summary>
/// <param name="logInfo">要写入日志的内容</param>
/// <param name="flagOfResult">成功还是失败</param>
public static void WriteLog1(this string logInfo, int flagOfResult)
{
XmlDocument doc = new XmlDocument();
string path = System.Environment.CurrentDirectory + "\\Log.xml";
doc.Load(path);
//查找根节点
XmlNode root = doc.SelectSingleNode("Logs");
//创建一个DataInfos节点
XmlElement xe = doc.CreateElement("Log"); XmlElement operater = doc.CreateElement("操作人");
operater.InnerText = "Admin";
xe.AppendChild(operater);
XmlElement OprateResult = doc.CreateElement("结果");
OprateResult.InnerText = flagOfResult == ? "成功" : "失败";
xe.AppendChild(OprateResult);
XmlElement OprateMsg = doc.CreateElement("结果信息");
OprateMsg.InnerText = logInfo;
xe.AppendChild(OprateMsg);
XmlElement OprateTime = doc.CreateElement("操作时间");
OprateTime.InnerText = DateTime.Now.ToShortDateString();
xe.AppendChild(OprateTime);
root.AppendChild(xe);
doc.Save(path); }

#region  写操作日志   这种格式  
              //      <Log>
              //<操作人>Admin</操作人>
              //<结果>成功</结果>
              //<结果信息>数据导出成功!</结果信息>
              //<操作时间>2014/5/27</操作时间>
              //</Log>

/// <summary>
        /// 写操作日志
        /// </summary>
        /// <param name="logInfo">要写入日志的内容</param>
        /// <param name="flagOfResult">成功还是失败</param>
        public static void WriteLog1(this string logInfo, int flagOfResult)
        {
            XmlDocument doc = new XmlDocument();
            string path = System.Environment.CurrentDirectory + "\\Log.xml";
            doc.Load(path);
            //查找根节点
            XmlNode root = doc.SelectSingleNode("Logs");
            //创建一个DataInfos节点
            XmlElement xe = doc.CreateElement("Log");

XmlElement operater = doc.CreateElement("操作人");
            operater.InnerText = "Admin";
            xe.AppendChild(operater);
            XmlElement OprateResult = doc.CreateElement("结果");
            OprateResult.InnerText = flagOfResult == 1 ? "成功" : "失败";
            xe.AppendChild(OprateResult);
            XmlElement OprateMsg = doc.CreateElement("结果信息");
            OprateMsg.InnerText = logInfo;
            xe.AppendChild(OprateMsg);
            XmlElement OprateTime = doc.CreateElement("操作时间");
            OprateTime.InnerText = DateTime.Now.ToShortDateString();
            xe.AppendChild(OprateTime);
            root.AppendChild(xe);
            doc.Save(path);

}

#endregion

#region  写操作日志----------------这种格式     <Log 操作人="Admin" 操作结果="成功" 结果详情="数据导出成功!" 操作时间="2014/5/2714:37" />

/// <summary>
        /// 写操作日志
        /// </summary>
        /// <param name="logInfo">要写入日志的内容</param>
        /// <param name="flagOfResult">成功还是失败</param>
        public static void WriteLog(this string logInfo, int flagOfResult)
        {
            try
            {
                XmlDocument doc = new XmlDocument();
                string path = System.Environment.CurrentDirectory + "\\Log.xml";
                doc.Load(path);
                //查找根节点
                XmlNode root = doc.SelectSingleNode("Logs");
                //创建一个DataInfos节点
                XmlElement xe = doc.CreateElement("Log");
                xe.SetAttribute("操作人", "Admin");
                xe.SetAttribute("操作结果", flagOfResult == 1 ? "成功" : "失败");
                xe.SetAttribute("结果详情", logInfo);
                xe.SetAttribute("操作时间", DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString());
                root.AppendChild(xe);
                doc.Save(path);
            }
            catch (Exception)
            {

return;
            }

}

#endregion

#region   根据配置文件初始化SQL语句

/// <summary>
        /// 根据表名及其配置文件生成T_SQL语句及要生成的Excel的表头
        /// </summary>
        /// <param name="TableName">要查询的Table的表名</param>
        /// <returns>正常:返回List<string>表头String及T_SqLString;异常:返回单个以“错误”+异常信息的List</returns>
        public static List<string> InitSqlString(this string TableName)
        {
            List<string> listResult = new List<string>();
            try
            {
                StringBuilder sbOfT_SQL = new StringBuilder();
                StringBuilder sbOfExcelHeadName = new StringBuilder();
                sbOfT_SQL.Append("select ");
                XmlDocument doc = new XmlDocument();
                doc.Load(System.Environment.CurrentDirectory + "\\TableDetailInfo\\" + TableName + ".xml");
                XmlNodeList xmlList = doc.SelectSingleNode("ContrastList").ChildNodes;
                foreach (XmlNode xn in xmlList)
                {
                    XmlElement xe = (XmlElement)xn;
                    if (xe.Name == "Contrast")
                    {
                        if (xe.GetAttribute("IsSelect") == "true")
                        {
                            sbOfT_SQL.Append(xe.GetAttribute("DestField"));
                            sbOfExcelHeadName.Append(xe.GetAttribute("SourceField"));
                            sbOfExcelHeadName.Append(",");
                            sbOfT_SQL.Append(",");
                        }

}
                }
                sbOfT_SQL.Remove(sbOfT_SQL.ToString().Length - 1, 1);
                sbOfExcelHeadName.Remove(sbOfExcelHeadName.ToString().Length - 1, 1);
                sbOfT_SQL.Append(" from " + TableName);
                listResult.Add(sbOfExcelHeadName.ToString());
                listResult.Add(sbOfT_SQL.ToString());

}
            catch (Exception ex)
            {
                listResult.RemoveRange(0, listResult.Count);
                listResult.Add("错误");
            }
            return listResult;
        }

#endregion

XML常用操作的更多相关文章

  1. xml常用操作(js、sql、vb)

    我们经常会用到xml操作,如下介绍了js.sql.vb等对xml的操作. JS创建xml对象 //创建对象 function getDataXML() {     var objTds = $(&qu ...

  2. TinyXml 操作XML 常用操作

    源代码下载:http://sourceforge.net/projects/tinyxml/files/ 如下是一个XML片段:    <Persons>        <Perso ...

  3. logback logback.xml常用配置详解(三)

    logback logback.xml常用配置详解 <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之 ...

  4. Hadoop HDFS文件常用操作及注意事项

    Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...

  5. SQL Server 2008 对XML 数据类型操作

    原文 http://www.cnblogs.com/qinjian123/p/3240702.html 一.前言 从 SQL Server 2005 开始,就增加了 xml 字段类型,也就是说可以直接 ...

  6. xml常用四种解析方式优缺点的分析×××××

    xml常用四种解析方式优缺点的分析 博客分类: xml   最近用得到xml的解析方式,于是就翻了翻自己的笔记同时从网上查找了资料,自己在前人的基础上总结了下,贴出来大家分享下. 首先介绍一下xml语 ...

  7. Flex 对Xml对象操作

    一.读取.xml文件() import flash.events.Event;   import flash.net.URLLoader;   import flash.net.URLRequest; ...

  8. fiddler常用操作

    fiddler常用操作 标签(空格分隔): fiddler fidrdler抓取https请求: fiddler是一个很好的抓包工具,但是默认的是抓取HTTP的,对于pc的https的会提示网页不安全 ...

  9. Hbase常用操作(增删改查)

    Hbase常用操作(增删改查) [日期:2014-01-03] 来源:Linux社区  作者:net19880504 [字体:大 中 小]     运行Eclipse,创建一个新的Java工程“HBa ...

随机推荐

  1. 五个知识体系之-Linux常用命令学习

    1.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文 ...

  2. 各种RTMP直播流播放权限_音视频_数据花屏_问题检测与分析工具EasyRTMPClient

    之前的一篇博客<网络摄像机IPCamera RTSP直播播放网络/权限/音视频数据/花屏问题检测与分析助手EasyRTSPClient>,我们介绍了RTSP流的检测和分析工具EasyRTS ...

  3. SCRM从入门到精通01

    [SCRM从入门到精通01]如何基于微信开放接口开发企业的微信CRM? 业内一直都在传说微信是天生的CRM,可是没有人看到过微信CRM的真容.随着微信最新公众平台的改版和开放接口的微信认证开放,微信C ...

  4. 九度OJ 1033:继续xxx定律 (基础题)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4987 解决:1201 题目描述:     当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数, ...

  5. BZOJ4944: [Noi2017]泳池

    BZOJ4944: [Noi2017]泳池 题目背景 久莲是个爱玩的女孩子. 暑假终于到了,久莲决定请她的朋友们来游泳,她打算先在她家的私人海滩外圈一块长方形的海域作为游泳场. 然而大海里有着各种各样 ...

  6. 设置ubuntu默认输入python进入python3

    执行下面两条命令 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update- ...

  7. Machine Learning No.4: Regularization

    1. Underfit = High bias Overfit = High varience 2. Addressing overfitting: (1) reduce number of feat ...

  8. 项目发布之后 总提示有一个.DLL找不到或不匹配

    最近发布项目(.net,winform)总提示有一个.dll文件找不到或者不匹配 但是在本地调试是正常的 这个.dll,原来是从.net组件中引用到项目的,后来我将此.dll文件从网上下载,然后在项目 ...

  9. VC DLL方法的__declspec导入导出

    https://msdn.microsoft.com/zh-cn/library/a90k134d.aspx https://msdn.microsoft.com/zh-cn/library/ms23 ...

  10. Linux-3.14.12内存管理笔记【kmalloc与kfree实现】【转】

    本文转载自:http://blog.chinaunix.net/uid-26859697-id-5573776.html kmalloc()是基于slab/slob/slub分配分配算法上实现的,不少 ...