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


  • 相关阅读:
    关于设置日期的代码
    图片拉伸方法以及修改图片渲染模式以及如何把一个控制器包装成一个导航控制器
    统一设置导航栏与状态栏代码
    CALayer加阴影后动画卡的处理办法
    Mac下显示隐藏所有文件
    删除当前目录下的所有.svn
    基础知识
    sql 学习5
    c#多线程学习
    xml序列化
  • 原文地址:https://www.cnblogs.com/QDuck/p/617240.html
Copyright © 2020-2023  润新知