zoukankan      html  css  js  c++  java
  • Xml操作封装

     /// <summary>
        /// XmlHelper 的摘要说明。
        /// xml操作类
        /// </summary>
        public class XmlHelper
        {
            protected string strXmlFile;
            protected XmlDocument objXmlDoc = new XmlDocument();
    
            public XmlHelper(string XmlFile)
            {
                // 
                // TODO: 在这里加入建构函式的程序代码 
                // 
                try
                {
    
                    objXmlDoc.Load(XmlFile);
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
                strXmlFile = XmlFile;
            }
    
            public DataTable GetData(string XmlPathNode)
            {
                //查找数据。返回一个DataView 
                DataSet ds = new DataSet();
                StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
                ds.ReadXml(read);
                return ds.Tables[0];
            }
            /// <summary>
            /// 新节点内容。
            /// 示例:xmlTool.Replace("Book/Authors[ISBN="0002"]/Content","ppppppp"); 
            /// </summary>
            /// <param name="XmlPathNode"></param>
            /// <param name="Content"></param>
            public void Replace(string XmlPathNode, string Content)
            {
                //更新节点内容。 
                objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;
            }
    
            /// <summary>
            /// 删除一个指定节点的子节点。 
            /// 示例: xmlTool.DeleteChild("Book/Authors[ISBN="0003"]"); 
            /// </summary>
            /// <param name="Node"></param>
            public void DeleteChild(string Node)
            {
                //删除一个节点。 
                string mainNode = Node.Substring(0, Node.LastIndexOf("/"));
                objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
            }
    
    
    
            /// <summary>
    
            ///  * 使用示列:
            ///  示例: XmlHelper.Delete( "/Node", "")
            ///  XmlHelper.Delete( "/Node", "Attribute")
            /// </summary>
            /// <param name="node">节点</param>
            /// <param name="attribute">属性名,非空时删除该节点属性值,否则删除节点值</param>
            public void Delete(string node, string attribute)
            {
                try
                {
    
                    XmlNode xn = objXmlDoc.SelectSingleNode(node);
                    XmlElement xe = (XmlElement)xn;
                    if (attribute.Equals(""))
                        xn.ParentNode.RemoveChild(xn);
                    else
                        xe.RemoveAttribute(attribute);
    
                }
                catch { }
            }
    
    
            /// <summary>
            /// 插入一节点和此节点的一子节点。 
            /// 示例:xmlTool.InsertNode("Book","Author","ISBN","0004"); 
            /// </summary>
            /// <param name="MainNode">主节点</param>
            /// <param name="ChildNode">子节点</param>
            /// <param name="Element">元素</param>
            /// <param name="Content">内容</param>
            public void InsertNode(string MainNode, string ChildNode, string Element, string Content)
            {
                //插入一节点和此节点的一子节点。 
                XmlNode objRootNode = objXmlDoc.SelectSingleNode(MainNode);
                XmlElement objChildNode = objXmlDoc.CreateElement(ChildNode);
                objRootNode.AppendChild(objChildNode);
                XmlElement objElement = objXmlDoc.CreateElement(Element);
                objElement.InnerText = Content;
                objChildNode.AppendChild(objElement);
            }
    
            /// <summary>
            /// 插入一个节点,带一属性。
            /// 示例: xmlTool.InsertElement("Book/Author[ISBN="0004"]","Title","Sex","man","iiiiiiii"); 
            /// </summary>
            /// <param name="MainNode">主节点</param>
            /// <param name="Element">元素</param>
            /// <param name="Attrib">属性</param>
            /// <param name="AttribContent">属性内容</param>
            /// <param name="Content">元素内容</param>
            public void InsertElement(string MainNode, string Element, string Attrib, string AttribContent, string Content)
            {
                //插入一个节点,带一属性。 
                XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
                XmlElement objElement = objXmlDoc.CreateElement(Element);
                objElement.SetAttribute(Attrib, AttribContent);
                objElement.InnerText = Content;
                objNode.AppendChild(objElement);
            }
            /// <summary>
            /// 插入一个节点,不带属性。
            /// 示例:xmlTool.InsertElement("Book/Author[ISBN="0004"]","Content","aaaaaaaaa"); 
            /// </summary>
            /// <param name="MainNode">主节点</param>
            /// <param name="Element">元素</param>
            /// <param name="Content">元素内容</param>
            public void InsertElement(string MainNode, string Element, string Content)
            {
                //插入一个节点,不带属性。 
                XmlNode objNode = objXmlDoc.SelectSingleNode(MainNode);
                XmlElement objElement = objXmlDoc.CreateElement(Element);
                objElement.InnerText = Content;
                objNode.AppendChild(objElement);
            }
    
            /// <summary>
            /// 对xml文件做插入,更新,删除后需做Save()操作,以保存修改
            /// </summary>
            public void Save()
            {
                //保存文檔。 
                try
                {
                    objXmlDoc.Save(strXmlFile);
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
                objXmlDoc = null;
            }
        }
     //实例应用: 
    
            //string strXmlFile = Server.MapPath("TestXml.xml"); 
            //XmlControl xmlTool = new XmlControl(strXmlFile); 
    
            // 数据显视 
            // dgList.DataSource = xmlTool.GetData("Book/Authors[ISBN="0002"]"); 
            // dgList.DataBind(); 
    
            // 更新元素内容 
            // xmlTool.Replace("Book/Authors[ISBN="0002"]/Content","ppppppp"); 
            // xmlTool.Save(); 
    
            // 添加一个新节点 
            // xmlTool.InsertNode("Book","Author","ISBN","0004"); 
            // xmlTool.InsertElement("Book/Author[ISBN="0004"]","Content","aaaaaaaaa"); 
            // xmlTool.InsertElement("Book/Author[ISBN="0004"]","Title","Sex","man","iiiiiiii"); 
            // xmlTool.Save(); 
    
            // 删除一个指定节点的所有内容和属性 
            // xmlTool.Delete("Book/Author[ISBN="0004"]"); 
            // xmlTool.Save(); 
    
            // 删除一个指定节点的子节点 
            // xmlTool.Delete("Book/Authors[ISBN="0003"]"); 
            // xmlTool.Save();
    
        // XmlHelper xml = new XmlHelper(path);
                // xml.InsertNode("A", "B", "BindCode", "1111");
                // xml.Save();
  • 相关阅读:
    window环境搭建contos 7,而后xshell链接
    .NET Core 学习笔记(二)之启动流程
    .Net Core 学习笔记(一)
    Redis入门指南(附网盘下载链接)
    结构化数据、半结构化数据和非结构化数据
    github上项目的目录结构说明
    数据库分库分表和带来的唯一ID、分页查询问题的解决
    博客目录
    14 SQLAlchemy
    13 Msql之四种事务隔离界别
  • 原文地址:https://www.cnblogs.com/AllUserBegin/p/4424294.html
Copyright © 2011-2022 走看看