zoukankan      html  css  js  c++  java
  • 操作xml(C#)

    xml结构

    <?xml version="1.0" encoding="UTF-8"?>
    <dataTable>
      <node id="201603220952208053861">
        <title>关于软件</title>
        <type>test</type>
        <addTime>2016-03-22 09:52:20</addTime>
        <editTime>2016-03-22 09:52:20</editTime>
        <content>产品:node
    版本:1.0
    作者:HUJQ</content>
      </node>
      <node id="201603220952563455956">
        <title>test</title>
        <type>测试</type>
        <addTime>2016-03-22 09:52:56</addTime>
        <editTime>2016-03-22 09:52:56</editTime>
        <content>测试</content>
      </node>
    </dataTable>

    xml类

    public class XmlHelper
        {
            private XmlDocument objXmlDoc = new XmlDocument();
            private string XmlFile;
            public XmlHelper(string XmlFile)
            {
                this.XmlFile = XmlFile;
                if (!File.Exists(XmlFile))
                {
                    creatXml();
                }
    
                objXmlDoc.Load(XmlFile);
            }
    
            #region 创建xml文件
            private void creatXml()
            {
                //加入XML的声明段落,<?xml version="1.0" encoding="UTF-8"?>  
                XmlDeclaration xmldecl = objXmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
                //添加上述创建和 xml声明节点
                objXmlDoc.AppendChild(xmldecl);
                //创建xml dbGuest 元素(根节点)
                XmlElement xmlelem = objXmlDoc.CreateElement("", "dataTable", "");
                objXmlDoc.AppendChild(xmlelem);
                try
                {
                    objXmlDoc.Save(XmlFile);
                }
                catch (Exception ex) { }
    
                Node node = new Node()
                {
                    id = getID(),
                    title = "关于软件",
                    type = "test",
                    addTime = getDateString(),
                    editTime = getDateString(),
                    content = "产品:node
    版本:1.0
    作者:HUJQ"
                };
                addXml(node);
            }
            #endregion
    
            #region 读xml文件
            public List<Node> readXml()
            {
                List<Node> nodeList = new List<Node>();
                XmlNode root = objXmlDoc.SelectSingleNode("dataTable");// 得到根节点
                XmlNodeList xmlNodeList = root.ChildNodes;// 得到根节点的所有子节点
                foreach (XmlNode xnl in xmlNodeList)
                {
                    Node node = new Node();
                    // 将节点转换为元素,便于得到节点的属性值
                    XmlElement xe = (XmlElement)xnl;
                    // 得到id属性的属性值
                    node.id = xe.GetAttribute("id");
                    node.title = xe.GetElementsByTagName("title")[0].InnerText;
                    node.type = xe.GetElementsByTagName("type")[0].InnerText;
                    node.addTime = xe.GetElementsByTagName("addTime")[0].InnerText;
                    node.editTime = xe.GetElementsByTagName("editTime")[0].InnerText;
                    node.content = xe.GetElementsByTagName("content")[0].InnerText;
                    nodeList.Add(node);
                }
                return nodeList;
            }
            #endregion
    
            #region 添加xml
            public void addXml(Node node)
            {
                XmlNode root = objXmlDoc.SelectSingleNode("dataTable");
                XmlElement xe1 = objXmlDoc.CreateElement("node");//创建一个<Node>节点
                xe1.SetAttribute("id", node.id);//设置该节点genre属性
    
                XmlElement xesub1 = objXmlDoc.CreateElement("title");
                xesub1.InnerText = node.title;//设置文本节点   
                xe1.AppendChild(xesub1);//添加到<Node>节点中   
    
                XmlElement xesub2 = objXmlDoc.CreateElement("type");
                xesub2.InnerText = node.type;
                xe1.AppendChild(xesub2);
    
                XmlElement xesub3 = objXmlDoc.CreateElement("addTime");
                xesub3.InnerText = node.addTime;
                xe1.AppendChild(xesub3);
    
                XmlElement xesub4 = objXmlDoc.CreateElement("editTime");
                xesub4.InnerText = node.editTime;
                xe1.AppendChild(xesub4);
    
                XmlElement xesub5 = objXmlDoc.CreateElement("content");
                xesub5.InnerText = node.content;
                xe1.AppendChild(xesub5);
    
                root.AppendChild(xe1);//添加到<Employees>节点中
    
                //保存创建好的XML文档  
                objXmlDoc.Save(XmlFile);
            }
            #endregion
    
            #region 删除xml
            public void delXml(string id)
            {
                XmlNodeList xmlNodeList = objXmlDoc.SelectSingleNode("dataTable").ChildNodes;
                foreach (XmlNode xn in xmlNodeList)//遍历所有子节点
                {
                    XmlElement xe = (XmlElement)xn;//将子节点类型转换为aXmlElement类型
                    if (xe.GetAttribute("id") == id)
                    {
                        xe.ParentNode.RemoveChild(xe);
                    }
                }
                objXmlDoc.Save(XmlFile);
            }
            #endregion
    
            #region 修改xml
            public void edidXml(Node node)
            {
                XmlNodeList xmlNodeList = objXmlDoc.SelectSingleNode("dataTable").ChildNodes;//获取dbGuest节点的所有子节点
                foreach (XmlNode xn in xmlNodeList)//遍历所有子节点
                {
                    XmlElement xe = (XmlElement)xn;//将子节点类型转换为aXmlElement类型
                    if (xe.GetAttribute("id") == node.id)
                    {
                        xe.GetElementsByTagName("title")[0].InnerText = node.title;
                        xe.GetElementsByTagName("type")[0].InnerText = node.type;
                        xe.GetElementsByTagName("editTime")[0].InnerText = node.editTime;
                        xe.GetElementsByTagName("content")[0].InnerText = node.content;
                    }
                }
                objXmlDoc.Save(XmlFile);
            }
            #endregion
    
            public string getID()
            {
                return DateTime.Now.ToString("yyyyMMddHHmmssfffffff");
            }
    
            public string getDateString()
            {
                return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            }
        }
    View Code

  • 相关阅读:
    12小时制时间
    sqlserver 安装和配置
    建议71:区分异步和多线程应用场景
    AVD管理器提示:PANIC:Could not open:AVD名称 解决办法
    一道看似复杂但是简单的c#面试题
    XML Schema 配置文件自动生成c#类设计案例子
    VS2010中的调试技巧 断点
    文章已被删除
    使用MONO使.net程序脱离.net框架运行
    5个很好用的.net 分析工具
  • 原文地址:https://www.cnblogs.com/margin-gu/p/5015783.html
Copyright © 2011-2022 走看看