怎么将数据保存成XML格式的例子

protected string strXmlFile;

  protected XmlDocument objXmlDoc = new XmlDocument();

  public XmlControl(string XmlFile)
  {
   try

   {
    objXmlDoc.Load(XmlFile);

   }
   catch (System.Exception ex)
   {
    throw ex;
   }

   strXmlFile = XmlFile;
  }

  #region 增加一个节点
  /// <summary>
  /// 增加一个节点
  /// </summary>
  /// <param name="mainNode"></param>
  /// <param name="nodeName"></param>
  /// <param name="values"></param>
  /// <returns></returns>
  public bool AddNode(string mainNode,string nodeName,string values)
  {
   //如果主节点不存在的话,将会扔出一个错误
   if(!this.IsExist(mainNode))
   {
    throw new Exception("生成XML时,发生错误,请确保模版XML文件一定正确");
   }

   //如果节点存在的情况下
   XmlNode node = this.objXmlDoc.SelectSingleNode(mainNode);
   XmlElement objElement = objXmlDoc.CreateElement(nodeName);
   objElement.InnerText = values;
   node.AppendChild(objElement);
   return true;
  }
  #endregion

  #region 修改一个节点的值,成功的话,返回True
  /// <summary>
  /// 修改一个节点的值,成功的话,返回True
  /// </summary>
  /// <param name="XmlPathNode"></param>
  /// <param name="Content"></param>
  public bool Replace(string node,string values)
  {
   if(this.IsExist(node))
   {
    objXmlDoc.SelectSingleNode(node).InnerText = values;
    return true;
   }
   else
   {
    return false;
   }
  }
  #endregion

  #region 返回一个节点的值
  /// <summary>
  /// 返回一个节点的值
  /// </summary>
  /// <param name="node"></param>
  /// <returns></returns>
  public string GetNodeValue(string node)
  {
   if(this.IsExist(node))
   {
    return objXmlDoc.SelectSingleNode(node).InnerText;
   }
   else
   {
    return "";
   }   
  }
  #endregion
    
  #region 判断一个节点是否存在
  /// <summary>
  /// 判断一个节点是否存在
  /// </summary>
  /// <param name="node"></param>
  /// <returns></returns>
  public bool IsExist(string node)
  {
   string[] nodes = node.Split('/');   
   XmlNodeList list = this.objXmlDoc.ChildNodes;
   for(int i=0; i< nodes.Length;i++)
   {
    bool isFind = false;
    for(int j = 0; j < list.Count; j++)
    {   
     if(list[j].Name == nodes[i])
     {
      list = list[j].ChildNodes;
      isFind = true;
      break;
     }
    }

    if(isFind == false)
    {
     return false;
    }
   }
   return true;

  }
  #endregion
 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值