zoukankan      html  css  js  c++  java
  • C#对XML操作:处理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();

    http://www.cnblogs.com/legoras/articles/1337314.html

    http://www.cnblogs.com/smhy8187/articles/978504.html

    http://blog.csdn.net/outrace/archive/2005/04/23/359364.aspx

    http://space.zdnet.com.cn/html/77/246877-395.html

  • 相关阅读:
    windows 安装 ELK(Elasticsearch,Logstash,kibana)
    NSSM 将程序封装成服务软件
    面试-双向链表
    mySql 事务,游标以及循环
    SQL 事务
    C# Windows 服务
    MVC 中ajax 调用Webservice 或WCF 问题
    js prototype
    计算一个数等于其它数相加的所有可能 如: 5 =1+4 ,1+3+1,2+3,2+2+1,1+1+1+1+1,1+1+1+2
    冒泡排序,选择排序,快速排序
  • 原文地址:https://www.cnblogs.com/emanlee/p/1522787.html
Copyright © 2011-2022 走看看