• [网络收集]asp.net(c#) 保存xml数据(将数据写入到xml文件中)


    //声明一个XmlDocument空对象
      protected XmlDocument XmlDoc = new XmlDocument();

      /// <summary>
      /// 构造函数,导入Xml文件
      /// </summary>
      /// <param name="xmlFile">文件虚拟路径</param>
      public XmlOp(string xmlFile)
      {
      try
      {
      XmlDoc.Load(GetXmlFilePath(xmlFile)); //载入Xml文档
      }
      catch (System.Exception ex)
      {
      throw ex;
      }
      }
      /// <summary>
      /// 析构函数
      /// </summary>
      ~XmlOp()
      {
      XmlDoc = null; //释放XmlDocument对象
      }

      /// <summary>
      /// 保存文件
      /// </summary>
      /// <param name="filePath">文件虚拟路径</param>
      public void Save(string filePath)
      {
      try
      {
      XmlDoc.Save(GetXmlFilePath(filePath));
      }
      catch (System.Exception ex)
      {
      throw ex;
      }
      }

      /// <summary>
      /// 返回Xml文件实际路径
      /// </summary>
      /// <param name="xmlFile">文件虚拟路径</param>
      /// <returns></returns>
      public string GetXmlFilePath(string xmlFile)
      {
      return HttpContext.Current.Server.MapPath(xmlFile);
      }

      /// <summary>
      /// 根据Xml文件的节点路径,返回一个DataSet数据集
      /// </summary>
      /// <param name="XmlPathNode">Xml文件的某个节点</param>
      /// <returns></returns>
      public DataSet GetDs(string XmlPathNode)
      {
      DataSet ds = new DataSet();
      try
      {  
      System.IO.StringReader read = new System.IO.StringReader(XmlDoc.SelectSingleNode(XmlPathNode).OuterXml);
      ds.ReadXml(read); //利用DataSet的ReadXml方法读取StringReader文件流
      read.Close();
      }
      catch
      { }
      return ds;
      }

      /// <summary>
      /// 属性查询,返回属性值
      /// </summary>
      /// <param name="XmlPathNode">属性所在的节点</param>
      /// <param name="Attrib">属性</param>
      /// <returns></returns>
      public string SelectAttrib(string XmlPathNode, string Attrib)
      {
      string _strNode="";
      try
      {
      _strNode = XmlDoc.SelectSingleNode(XmlPathNode).Attributes[Attrib].Value;
      }
      catch
      { }
      return _strNode;
      }

      /// <summary>
      /// 节点查询,返回节点值
      /// </summary>
      /// <param name="XmlPathNode">节点的路径</param>
      /// <returns></returns>
      public string SelectNodeText(string XmlPathNode)
      {
      string _nodeTxt = XmlDoc.SelectSingleNode(XmlPathNode).InnerText;
      if (_nodeTxt == null || _nodeTxt == "")
      return "";
      else
      return _nodeTxt;
      }

      /// <summary>
      /// 节点值查询判断
      /// </summary>
      /// <param name="XmlPathNode">父节点</param>
      /// <param name="index">节点索引</param>
      /// <param name="NodeText">节点值</param>
      /// <returns></returns>
      public bool SelectNode(string XmlPathNode, int index, string NodeText)
      {
      try
      {
      XmlNodeList _NodeList = XmlDoc.SelectNodes(XmlPathNode);
      //循环遍历节点,查询是否存在该节点
      for (int i = 0; i < _NodeList.Count; i++)
      {
      if (_NodeList[i].ChildNodes[index].InnerText == NodeText)
      {
      return true;
      break;
      }
      }
      }
      catch
      {  
      }
      return false;
      }

      /// <summary>
      /// 获取子节点个数
      /// </summary>
      /// <param name="XmlPathNode">父节点</param>
      /// <returns></returns>
      public int NodeCount(string XmlPathNode)
      {
      int i = 0;
      try
      {
      i=XmlDoc.SelectSingleNode(XmlPathNode).ChildNodes.Count;  
      }
      catch
      {
      i=0;
      }
      return i;
      }

      /// <summary>
      /// 更新一个节点的内容
      /// </summary>
      /// <param name="XmlPathNode">节点的路径</param>
      /// <param name="Content">新的节点值</param>
      /// <returns></returns>
      public bool UpdateNode(string XmlPathNode,string NodeContent)
      {
      try
      {
      XmlDoc.SelectSingleNode(XmlPathNode).InnerText = NodeContent;
      return true;
      }
      catch
      {
      return false;
      }
      }

      /// <summary>
      /// 更新N个节点值
      /// </summary>
      /// <param name="XmlParentNode">父节点</param>
      /// <param name="XmlNode">子节点</param>
      /// <param name="NodeContent">子节点内容</param>
      /// <returns></returns>
      public bool UpdateNode(string XmlParentNode, string[] XmlNode, string[] NodeContent)
      {  
      try
      {
      //根据节点数组循环修改节点值
      for (int i = 0; i < XmlNode.Length; i++)
      {
      XmlDoc.SelectSingleNode(XmlParentNode+"/"+XmlNode[i]).InnerText = NodeContent[i];
      }
      return true;
      }
      catch
      {
      return false;
      }
      }

      /// <summary>
      /// 修改属性
      /// </summary>
      /// <param name="XmlPathNode">属性所在的节点</param>
      /// <param name="Attrib">属性名</param>
      /// <param name="Content">属性值</param>
      /// <returns></returns>
      public bool UpdateAttrib(string XmlPathNode, string Attrib,string AttribContent)
      {
      try
      {
      //修改属性值
      XmlDoc.SelectSingleNode(XmlPathNode).Attributes[Attrib].Value = AttribContent;
      return true;
      }
      catch
      {
      return false;
      }
      }


      /// <summary>
      /// 添加属性
      /// </summary>
      /// <param name="MainNode">属性所在节点</param>
      /// <param name="Attrib">属性名</param>
      /// <param name="AttribContent">属性值</param>
      /// <returns></returns>
      public bool InsertAttrib(string MainNode,string Attrib, string AttribContent)
      {
      try
      {
      XmlElement objNode = (XmlElement)XmlDoc.SelectSingleNode(MainNode); //强制转化成XmlElement对象
      objNode.SetAttribute(Attrib, AttribContent); //XmlElement对象添加属性方法  
      return true;
      }
      catch
      {
      return false;
      }
      }


      /// <summary>
      /// 插入一个节点,带N个子节点
      /// </summary>
      /// <param name="MainNode">插入节点的父节点</param>
      /// <param name="ChildNode">插入节点的元素名</param>
      /// <param name="Element">插入节点的子节点名数组</param>
      /// <param name="Content">插入节点的子节点内容数组</param>
      /// <returns></returns>
      public bool InsertNode(string MainNode, string ChildNode, string[] Element, string[] Content)
      {
      try
      {
      XmlNode objRootNode = XmlDoc.SelectSingleNode(MainNode); //声明XmlNode对象
      XmlElement objChildNode = XmlDoc.CreateElement(ChildNode); //创建XmlElement对象
      objRootNode.AppendChild(objChildNode);  
      for (int i = 0; i < Element.Length; i++) //循环插入节点元素
      {
      XmlElement objElement = XmlDoc.CreateElement(Element[i]);
      objElement.InnerText = Content[i];
      objChildNode.AppendChild(objElement);
      }
      return true;
      }
      catch
      {
      return false;
      }
      }

      /// <summary>
      /// 删除一个节点
      /// </summary>
      /// <param name="Node">要删除的节点</param>
      /// <returns></returns>
      public bool DeleteNode(string Node)
      {
      try
      {
      //XmlNode的RemoveChild方法来删除节点及其所有子节点
      XmlDoc.SelectSingleNode(Node).ParentNode.RemoveChild(XmlDoc.SelectSingleNode(Node));
      return true;
      }
      catch
      {
      return false;
      }
      }
      }

    摘自 http://topic.csdn.net/u/20091225/11/7eb26ea8-0a40-4076-933f-31e244dcece1.html

  • 相关阅读:
    Python 更新pip报错:Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
    Vs code 配置(1)-win10
    博客园主题--sukura
    log4j
    安装ant问题
    freemarker string= null
    学习随想
    j2ee学习资料收集
    eclipse + marven
    好文mark
  • 原文地址:https://www.cnblogs.com/lushuicongsheng/p/1900417.html
Copyright © 2020-2023  润新知