zoukankan      html  css  js  c++  java
  • c# xml操作类

    public class XmlControl
     {
      protected string strXmlFile;
      protected XmlDocument objXmlDoc = new XmlDocument();

      public XmlControl(string XmlFile)
      {
       //
       // TODO: 在這裡加入建構函式的程式碼
       //
       try
       {
        objXmlDoc.Load(XmlFile);
       }
       catch (System.Exception ex)
       {
        throw ex;
       }
       strXmlFile = XmlFile;
      }

      public DataView GetData(string XmlPathNode)
      {
       //查找數據。返回一個DataView
       DataSet ds = new DataSet();
       StringReader read = new StringReader(objXmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
       ds.ReadXml(read);
       return ds.Tables[0].DefaultView;
      }

      public void Replace(string XmlPathNode,string Content)
      {
       //更新節點內容。
       objXmlDoc.SelectSingleNode(XmlPathNode).InnerText = Content;
      }

      public void Delete(string Node)
      {
       //刪除一個節點。
       string mainNode = Node.Substring(0,Node.LastIndexOf("/"));
       objXmlDoc.SelectSingleNode(mainNode).RemoveChild(objXmlDoc.SelectSingleNode(Node));
      }

      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);
      }

      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);
      }

      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);
      }

      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();


  • 相关阅读:
    el-table背景色透明
    判断数组对象里的属性值是否重复
    :Duplicate keys detected: 'xxx'. This may cause an update error.
    钉钉微应用附件下载方案
    探索JS引擎工作原理
    js深度优先遍历和广度优先遍历实现
    微前端qiankun从搭建到部署的实践
    浏览器与Node的事件循环(Event Loop)有何区别?
    JS
    微信小程序预览Word文档
  • 原文地址:https://www.cnblogs.com/QDuck/p/617240.html
Copyright © 2011-2022 走看看