Ejemplo n.º 1
0
 /// <summary>
 /// 增加节点
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="encoding"></param>
 /// <param name="rootNodes"></param>
 private static void AddNode(string filePath, Encoding encoding, EnowitXmlNode rootNodes)
 {
     if (rootNodes.ParentNode == null)
     {
         //加入根节点
         XmlElement xmlelem = xmldoc.CreateElement("", rootNodes.Name, "");
         if (rootNodes.NodeAttribute != null && rootNodes.NodeAttribute.Count > 0)
         {
             foreach (EnowitXmlNodeAttribute nodeAttribute in rootNodes.NodeAttribute)//添加节点属性
             {
                 xmlelem.SetAttribute(nodeAttribute.Name, nodeAttribute.Value);
             }
         }
         xmldoc.AppendChild(xmlelem);
     }
     if (rootNodes.ChildNode != null)//添加孩子节点
     {
         foreach (EnowitXmlNode child in rootNodes.ChildNode)
         {
             string  _xPath  = GetXPath(child).Substring(0, GetXPath(child).LastIndexOf('/')); //获取父节点全路径
             XmlNode xmlNode = xmldoc.SelectSingleNode(_xPath);                                //获取父节点
             CreateNode(child, xmlNode);
             AddNode(filePath, encoding, child);
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 增加方法
 /// </summary>
 /// <param name="node">EnowitXmlNode节点</param>
 public void Add(EnowitXmlNode node)
 {
     if (_nodes == null)
     {
         _nodes = new List <EnowitXmlNode>();
     }
     node.ParentNode = _rootNode;
     _nodes.Add(node);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取节点父节点路径
        /// </summary>
        /// <param name="node">当前节点</param>
        /// <returns></returns>
        private static string GetXPath(EnowitXmlNode node)
        {
            string xPath = null;

            if (node.ParentNode == null || string.IsNullOrEmpty(node.ParentNode.Name))
            {
                xPath = node.Name;
            }
            else
            {
                xPath = GetXPath(node.ParentNode) + "/" + node.Name;
            }
            return(xPath);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 添加节点
        /// </summary>
        /// <param name="node">要添加的节点</param>
        /// <param name="xmlNode">父节点</param>
        /// <returns></returns>
        private static void CreateNode(EnowitXmlNode node, XmlNode xmlNode)
        {
            XmlElement xmlelem = xmldoc.CreateElement("", node.Name, "");

            if (node.NodeAttribute != null && node.NodeAttribute.Count > 0)
            {
                foreach (EnowitXmlNodeAttribute nodeAttribute in node.NodeAttribute)//添加节点属性
                {
                    xmlelem.SetAttribute(nodeAttribute.Name, nodeAttribute.Value);
                }
            }
            if (!string.IsNullOrEmpty(node.Value))
            {
                XmlText xmlText = xmldoc.CreateTextNode(node.Value);
                xmlelem.AppendChild(xmlText);
            }
            xmlNode.AppendChild(xmlelem);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 根据根节点的一些信息创建XML文件
 /// </summary>
 /// <param name="filePath">文件路径全名</param>
 /// <param name="encoding">编码</param>
 /// <param name="rootNodes">根节点</param>
 /// <returns></returns>
 private static void _CreateXmlFile(string filePath, Encoding encoding, EnowitXmlNode rootNodes)
 {
     if (!File.Exists(filePath))
     {
         string dir = Path.GetDirectoryName(filePath);
         if (!Directory.Exists(dir))
         {
             Directory.CreateDirectory(dir);
         }
         xmldoc = new XmlDocument();
         xmldoc.AppendChild(xmldoc.CreateXmlDeclaration("1.0", encoding.BodyName, null));
         AddNode(filePath, encoding, rootNodes);
         try
         {
             xmldoc.Save(filePath);
         }
         catch
         {
             throw;
         }
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// 节点集合
 /// </summary>
 /// <param name="node">节点</param>
 public EnowitXmlNodes(EnowitXmlNode node)
 {
     _rootNode = node;
 }
Ejemplo n.º 7
0
 /// <summary>
 /// 根据根节点的一些信息创建XML文件
 /// </summary>
 /// <param name="filePath">文件路径全名</param>
 /// <param name="encoding">编码</param>
 /// <param name="rootNodes">根节点</param>
 /// <returns></returns>
 public static void CreateXmlFile(string filePath, Encoding encoding, EnowitXmlNode rootNodes)
 {
     _CreateXmlFile(filePath, encoding, rootNodes);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="name">节点名称</param>
 /// <param name="value">节点值</param>
 /// <param name="parent">父节点</param>
 public EnowitXmlNode(string name, string value, EnowitXmlNode parent)
     : base(name, value)
 {
     this.ParentNode = parent;
 }