zoukankan      html  css  js  c++  java
  • C#创建XML节点

     1         public static bool CreateXML()
     2         {
     3             XMLMapMode xmlmodel = new XMLMapMode();
     4             Dictionary<string, object> dic = new Dictionary<string, object>();
     5             xmlmodel.Code = "节点的Code属性";
     6             xmlmodel.Content = "节点的内容";
     7             xmlmodel.SQLMapFile = "文件目录";
     8             dic.Add("Description", "描述属性");
     9             dic.Add("CreateCode", "创建人");
    10             dic.Add("UpdateTime", "创建时间");
    11             xmlmodel.Parameters = dic;
    12             XMLBase.UpdateXML(xmlmodel);
    13             xmlModel.xpath = "/Root";
    14             bool state = CreateCDATA(xmlmodel);
    15             return state;
    16         }
    调用创建的方法
     1 public static bool CreateXmlNodeByXModel(XMLMapMode XmlModel)
     2         {
     3             bool isSuccess = false;
     4             XmlDocument xmlDoc = new XmlDocument();
     5             try
     6             {
     7                 xmlDoc.Load(XmlModel.SQLMapFile); //加载XML文档
     8                 XmlNode xmlNode = xmlDoc.SelectSingleNode(XmlModel.xpath);
     9                 if (xmlNode != null)
    10                 {
    11                     //存不存在此节点都创建
    12                     XmlElement subElement = xmlDoc.CreateElement("SQL");
    13                     subElement.InnerXml = XmlModel.Content;
    14 
    15                     #region 追加属性
    16                     ////////追加code属性/////////////////
    17                     if (!string.IsNullOrEmpty(XmlModel.Code))
    18                     {
    19                         XmlAttribute xmlAttribute = xmlDoc.CreateAttribute("Code");
    20                         xmlAttribute.Value = XmlModel.Code;
    21                         subElement.Attributes.Append(xmlAttribute);
    22                     }
    23                     ////////////////////////
    24 
    25                     //如果属性和值参数都不为空则在此新节点上新增其他副属性
    26                     if (XmlModel.Parameters.Count > 0)
    27                     {
    28                         foreach (var item in XmlModel.Parameters)
    29                         {
    30                             if (!string.IsNullOrEmpty(item.Key) && !string.IsNullOrEmpty(item.Value.ToString()))
    31                             {
    32                                 XmlAttribute xmlAttribute = xmlDoc.CreateAttribute(item.Key);
    33                                 xmlAttribute.Value = item.Value.ToString();
    34                                 subElement.Attributes.Append(xmlAttribute);
    35                             }
    36                         }
    37                     }
    38                     #endregion
    39 
    40                     xmlNode.AppendChild(subElement);
    41                 }
    42                 xmlDoc.Save(XmlModel.SQLMapFile); //保存到XML文档
    43                 isSuccess = true;
    44             }
    45             catch (Exception ex)
    46             {
    47                 throw ex; //这里可以定义你自己的异常处理
    48             }
    49             return isSuccess;
    50         }
    创建XML节点(普通)
     1 private static bool CreateCDATA(XMLMapMode XmlModel)
     2         {
     3             bool isSuccess = false;
     4             XmlDocument xmlDoc = new XmlDocument();
     5             try
     6             {
     7                 xmlDoc.Load(XmlModel.SQLMapFile); //加载XML文档
     8                 XmlNode xmlNode = xmlDoc.SelectSingleNode(XmlModel.xpath);
     9                 if (xmlNode != null)
    10                 {
    11                     #region 创建节点
    12                     //遍历xpath节点下的所有子节点
    13                     if (!IsExistNode(XmlModel.Code, xmlNode))
    14                     {
    15                         //存不存在此节点都创建
    16                         XmlElement subElement = xmlDoc.CreateElement("SQL");
    17                         XmlCDataSection cdata = xmlDoc.CreateCDataSection(XmlModel.Content);
    18                         subElement.AppendChild(cdata);
    19                         //subElement.InnerXml = XmlModel.Content;
    20 
    21                         #region 追加属性
    22                         ////////追加code属性/////////////////
    23                         if (!string.IsNullOrEmpty(XmlModel.Code))
    24                         {
    25                             XmlAttribute xmlAttribute = xmlDoc.CreateAttribute("Code");
    26                             xmlAttribute.Value = XmlModel.Code;
    27                             subElement.Attributes.Append(xmlAttribute);
    28                         }
    29                         ////////////////////////
    30 
    31                         //如果属性和值参数都不为空则在此新节点上新增其他副属性
    32                         if (XmlModel.Parameters !=null)
    33                         {
    34                             foreach (var item in XmlModel.Parameters)
    35                             {
    36                                 if (!string.IsNullOrEmpty(item.Key) && !string.IsNullOrEmpty(item.Value.ToString()))
    37                                 {
    38                                     XmlAttribute xmlAttribute = xmlDoc.CreateAttribute(item.Key);
    39                                     xmlAttribute.Value = item.Value.ToString();
    40                                     subElement.Attributes.Append(xmlAttribute);
    41                                 }
    42                             }
    43                         }
    44                         #endregion
    45 
    46                         xmlNode.AppendChild(subElement);
    47 
    48                         xmlDoc.Save(XmlModel.SQLMapFile); //保存到XML文档
    49                         isSuccess = true;
    50                     }
    51                     else
    52                     {
    53                         isSuccess= false;
    54                     }
    55                     #endregion
    56                 }
    57             }
    58             catch (Exception ex)
    59             {
    60                 throw ex; //这里可以定义你自己的异常处理
    61             }
    62             return isSuccess;
    63         }
    创建XML节点(CDATA)
     1 private static bool UpdateXmlNodeByXModel(XMLMapMode xmlModel)
     2         {
     3             bool isSuccess = false;
     4             //bool isExistsNode = false;//标识节点是否存在
     5             XmlDocument xmlDoc = new XmlDocument();
     6             try
     7             {
     8                 xmlDoc.Load(xmlModel.SQLMapFile); //加载XML文档
     9                 XmlNode xmlNode = xmlDoc.SelectSingleNode(xmlModel.xpath);
    10                 if (xmlNode != null)
    11                 {
    12                     XmlElement subElement = xmlDoc.CreateElement("SQL");
    13                     XmlCDataSection cdata = xmlDoc.CreateCDataSection(xmlModel.Content);
    14                     subElement.AppendChild(cdata);
    15 
    16                     #region 追加属性
    17                     ////////追加code属性/////////////////
    18                     if (!string.IsNullOrEmpty(xmlModel.Code))
    19                     {
    20                         XmlAttribute xmlAttribute = xmlDoc.CreateAttribute("Code");
    21                         xmlAttribute.Value = xmlModel.Code;
    22                         subElement.Attributes.Append(xmlAttribute);
    23                     }
    24                     ////////////////////////
    25 
    26                     //如果属性和值参数都不为空则在此新节点上新增其他副属性
    27                     if (xmlModel.Parameters.Count !=null)
    28                     {
    29                         foreach (var item in xmlModel.Parameters)
    30                         {
    31                             if (!string.IsNullOrEmpty(item.Key) && !string.IsNullOrEmpty(item.Value.ToString()))
    32                             {
    33                                 XmlAttribute xmlAttribute = xmlDoc.CreateAttribute(item.Key);
    34                                 xmlAttribute.Value = item.Value.ToString();
    35                                 subElement.Attributes.Append(xmlAttribute);
    36                             }
    37                         }
    38                     }
    39                     #endregion
    40                     //遍历xpath节点下的所有子节点
    41                     foreach (XmlNode node in xmlNode.ChildNodes)
    42                     {
    43                         string code = XMLHelper.GetNodeAttribute("Code", node);
    44                         if (xmlModel.Code.ToLower() == code.ToLower())
    45                         {
    46                             //存在此节点则更新
    47                             xmlNode.ReplaceChild(subElement, node);
    48                             //isExistsNode = true;
    49                             break;
    50                         }
    51                     }
    52                 }
    53                 xmlDoc.Save(xmlModel.SQLMapFile); //保存到XML文档
    54                 isSuccess = true;
    55             }
    56             catch (Exception ex)
    57             {
    58                 throw ex; //这里可以定义你自己的异常处理
    59             }
    60             return isSuccess;
    61         }
    修改XML节点
     1 public static string QueryXML(XMLMapMode xmlModel)
     2         {
     3             xmlModel.xpath = "/Root";
     4             string text = "当前节点无数据或不存在!";
     5             XmlDocument xmlDoc = new XmlDocument();
     6             try
     7             {
     8                 xmlDoc.Load(xmlModel.SQLMapFile); //加载XML文档
     9                 XmlNode xmlNode = xmlDoc.SelectSingleNode(xmlModel.xpath);
    10                 if (xmlNode != null)
    11                 {
    12                     //遍历xpath节点下的所有子节点
    13                     foreach (XmlNode node in xmlNode.ChildNodes)
    14                     {
    15                         string code = XMLHelper.GetNodeAttribute("Code", node);
    16                         if (xmlModel.Code.ToLower() == code.ToLower())
    17                         {
    18                             text= node.InnerText;
    19                         }
    20                     }
    21                 }
    22             }
    23             catch (Exception ex)
    24             {
    25                 text= ex.Message; //这里可以定义你自己的异常处理
    26             }
    27             return text;
    28         }
    查询XML节点
     1 private static bool DeleteXmlNodeByXModel(XMLMapMode xmlModel)
     2         {
     3             bool isSuccess = false;
     4             //bool isExistsNode = false;//标识节点是否存在
     5             XmlDocument xmlDoc = new XmlDocument();
     6             try
     7             {
     8                 xmlDoc.Load(xmlModel.SQLMapFile); //加载XML文档
     9                 XmlNode xmlNode = xmlDoc.SelectSingleNode(xmlModel.xpath);
    10                 if (xmlNode != null)
    11                 {
    12                     //遍历xpath节点下的所有子节点
    13                     foreach (XmlNode node in xmlNode.ChildNodes)
    14                     {
    15                         string code = XMLHelper.GetNodeAttribute("Code", node);
    16                         if (xmlModel.Code.ToLower() == code.ToLower())
    17                         {
    18                             //存在此节点删除
    19                             xmlNode.RemoveChild(node);
    20                             //isExistsNode = true;
    21                             break;
    22                         }
    23                     }
    24                 }
    25                 xmlDoc.Save(xmlModel.SQLMapFile); //保存到XML文档
    26                 isSuccess = true;
    27             }
    28             catch (Exception ex)
    29             {
    30                 throw ex; //这里可以定义你自己的异常处理
    31             }
    32             return isSuccess;
    33         }
    删除XML节点
     1 public static string GetAllFile()
     2         {
     3             string json = "";
     4             try
     5             {
     6                 string path = TwiPathHelper.MapPath("文件的地址");
     7                 DirectoryInfo dir = new DirectoryInfo(path);
     8                 FileInfo[] dirs = dir.GetFiles();
     9                 if (dirs != null)
    10                 {
    11                     json = FilesToJson(dirs);
    12                 }
    13             }
    14             catch (Exception ex)
    15             {
    16                 throw ex;
    17             }
    18             return json;
    19         }
    获取文件夹下的所有文件
     1 private static string XmlNodeListToJson(XmlNodeList xnl)
     2         {
     3             string json = "[";
     4             foreach (XmlNode node in xnl)
     5             {
     6                 string code = XMLHelper.GetNodeAttribute("Code", node);
     7                 string Description1 = XMLHelper.GetNodeAttribute("Description", node);
     8                 string Description = XMLHelper.GetNodeAttribute("Description", node);
     9                 string CreateTime = XMLHelper.GetNodeAttribute("CreateTime", node);
    10                 Description = Description + "(" + code + ")";
    11                 json += "{"Code":@" + code + "@,"Description1":@" + Description1 + "@,"Description":@" + Description + "@,"CreateTime":@" + CreateTime + "@},";
    12                 json=json.Replace('@', '"');
    13             }
    14             json = json.TrimEnd(',');
    15             json += "]";
    16             return json;
    17         }
    所有节点属性转json(根据创建时的设置)
    更多技术交流+QQ:318617848
  • 相关阅读:
    简介浏览器内核与JavaScript引擎
    一句SQL完成动态分级查询
    C# 语言习惯
    React的组件间通信
    React的学习(上)
    火狐浏览器所有的快捷键
    视频输出端口及颜色空间介绍
    live555
    ffplay的快捷键以及选项 FFmpeg 基本用法 FFmpeg常用基本命令 ffmpeg常用转换命令,支持WAV转AMR
    黑客技术资源
  • 原文地址:https://www.cnblogs.com/huyaguang/p/5763807.html
Copyright © 2011-2022 走看看