批量更新带有命名空间的XML文件的多个节点值

        /// <summary>
        /// 批量修改节点值
        /// </summary>
        /// <param name="filePath">路径</param>
        /// <param name="parameters">节点,值</param>
        /// <param name="nameSpace">命名空间</param>
        /// <returns></returns>
        /**************************************************
         * 使用示列:
         * XmlHelper.BatchUpdateNodeValue(path, parameters, nameSpace)
      * 旺财软件 WangCaiSoft ************************************************/ public static void BatchUpdateNodeValue(string filePath, List<KeyValuePair<string, string>> parameters, string nameSpace = "") { if (!string.IsNullOrEmpty(filePath)) { if (!filePath.Contains(@":\") && filePath.Contains(@"/")) { filePath = System.Web.HttpContext.Current.Server.MapPath(filePath); } try { var doc = new XmlDocument(); doc.Load(filePath); if (parameters != null && parameters.Count > 0) { foreach (var parameter in parameters) { if (parameter.Key != null && parameter.Value != null) { var node = parameter.Key; var value = parameter.Value; var xn = doc.SelectSingleNode(node); if (!string.IsNullOrEmpty(nameSpace)) { XmlNamespaceManager xmlnam = new XmlNamespaceManager(doc.NameTable); xmlnam.AddNamespace("a", nameSpace); node = node.Replace("/", "/a:"); xn = doc.SelectSingleNode(node, xmlnam); } var xe = (XmlElement)xn; if (xe != null) { xe.InnerText = value; } } } } //最后一次性保存 doc.Save(filePath); } catch (Exception ex) { LogUtil.WriteException(ex); } } }

调用方法

                    var parameters = new List<KeyValuePair<string, string>>();
                    parameters.Add(new KeyValuePair<string, string>("/DocumentID/ID", orderNumber));
                    parameters.Add(new KeyValuePair<string, string>("/Status/Code", "Processed"));
                    parameters.Add(new KeyValuePair<string, string>("/CreditCardAuthCode", transactionKey));
                    parameters.Add(new KeyValuePair<string, string>("/AuthorizedBy", userName));
                    parameters.Add(new KeyValuePair<string, string>("/AuthorizedDate", transactionDate));
                    
                    XmlHelper.BatchUpdateNodeValue(filePath, parameters, "http://schema.infor.com/InforOAGIS/2");

  

转载于:https://www.cnblogs.com/cuiwenyuan/p/7211869.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值