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

  • 相关阅读:
    Setting up SharePoint Blogs, Wikis, and Announcements
    Reports 将透视表显示成没有级联关系的普通表
    TF80012: The document cannot be opened because there is a problem with the installation of the Microsoft Visual Studio v
    项目干系人分析的“四步法”
    Overload和Override的区别
    Add and Customize a Type of Work Item
    将所有的非DLL, PDB文件从一个位置Copy到另外一个位置,相同文件跳过
    如何删除工作项
    No Excel Calculation Services is available in the farm
    SPORTINGLIFE.COM
  • 原文地址:https://www.cnblogs.com/top5/p/1708418.html
Copyright © 2011-2022 走看看