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


  • 相关阅读:
    一个表缺失索引发的CPU资源瓶颈案例
    SQLServer 版本之八大方法搞清 "我是谁"
    DBA成长路线
    SQL Server2016升级前几点自检
    SQL Server 2016白皮书
    <译>通过PowerShell工具跨多台服务器执行SQL脚本
    /lib64/libc.so.6: version `GLIBC_2.17' not found
    /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
    HGT高程数据文件格式解析
    DEM高程数据下载资源
  • 原文地址:https://www.cnblogs.com/QDuck/p/617240.html
Copyright © 2011-2022 走看看