/// <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");

  

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

  1. 带有命名空间的xml解析,C#

    前一段时间做花旗的接口,返回的xml格式是带有命名空间的,可是难倒了我,找了好久才找到解决办法,给大家分享下,少走弯路. 1,直接进入正题,先看一段带有命名空间的xml,这段xml大概的意思是,前面是 ...

  2. opencv局限:cv::FileStorage读取中,xml文件的第一层节点不能超过4个

    今天测试发现一个问题,cv::FileStorage读取中,xml文件的第一层节点不能超过4个. <?xml version="1.0"?> <opencv_st ...

  3. php解析带有命名空间的xml

    xml如果带有命名空间我们将如何解析,例如: <ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd ...

  4. 利用XPath解析带有xmlns的XML文件

    在.net中,编写读取xml 的程序中提示"未将对象引用设置到对象的实例",当时一看觉得有点奇怪.为什么在读取xml数据的时候也要实例化一个对象.google了才知道,xml文件中 ...

  5. 解决创建带有NameSpace的XML文件出现空白xmlns的问题

    为了能够让用户自行部署ClickOnce应用程序,需要编写一个生成ClickOnce应用程序的ClickOnce专用安装程序setup.exe,而生成这个setup.exe的方法就是编写一个XML格式 ...

  6. Android attrs.xml文件中属性类型format值的格式

    "reference" //引用 "color" //颜色 "boolean" //布尔值 "dimension" // ...

  7. python中用ElementTree.iterparse()读取xml文件中的多层节点

    我在使用Python解析比较大型的xml文件时,为了提高效率,决定使用iterparse()方法,但是发现根据网上的例子:每次if event == 'end':之后elem.clear()或者是每次 ...

  8. 解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架自动封装参数的功能

    程序结构:src文件夹下存放xml文件 该文件内容: <?xml version="1.0" encoding="UTF-8"?> <myst ...

  9. C#操作XML,如何获取指定节点值?

    博客园提问,结合网友回答http://q.cnblogs.com/q/36082/   打开是treelist树形显示xml所有节点,递归来实现 xmlDoc = new XmlDocument(); ...

随机推荐

  1. Send Email in Robot Framework Python Using Gmail

    转载自:http://seleniummaster.com/sitecontent/index.php/selenium-robot-framework-menu/selenium-robot-fra ...

  2. 重复代码Duplicated Code---要重构的信号

    什么时候需要重构,当你在项目代码里面嗅到这个味道的时候,就要进行重构.   首个介绍的味道是重复代码的味道.   它表现出来的特征是这些:   1.一个类里面,两个函数中,含有相同的代码,类似的代码: ...

  3. 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛) F.猴子排序的期望

    题目链接:https://www.nowcoder.com/acm/contest/116/F 题目描述 我们知道有一种神奇的排序方法叫做猴子排序,就是把待排序的数字写在卡片上,然后让猴子把卡片扔在空 ...

  4. hdu 1969 Pie(二分查找)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1969 Pie Time Limit: 5000/1000 MS (Java/Others)    Me ...

  5. VMware12序列号

    VMware tools怎么删除 rpm -e open-vm-tools-desktop vm12序列号 5A02H-AU243-TZJ49-GTC7K-3C61NVF5XA-FNDDJ-085GZ ...

  6. V4L2(二)虚拟摄像头驱动vivi深入分析【转】

    转自:http://www.cnblogs.com/tureno/articles/6694463.html 转载于: http://blog.csdn.net/lizuobin2/article/d ...

  7. nfs 文件共享 服务

    需要rpc服务: [root@xujiaxuan ftp]# service rpcbind start[root@xujiaxuan ftp]# chkconfig rpcbind on 设置开机自 ...

  8. 006 Java并发编程wait、notify、notifyAll和Condition

    原文https://www.cnblogs.com/dolphin0520/p/3920385.html#4182690 Java并发编程:线程间协作的两种方式:wait.notify.notifyA ...

  9. 【jzoj6.24模拟B】

    这场真是无聊,搬远古原题…… xjb做了做,(居然没AK真是身败名裂) A.教主的花园 答案明显具有可二分性,二分答案判定下就行. #include<bits/stdc++.h> #def ...

  10. 2017多校第7场 HDU 6128 Inverse of sum 推公式或者二次剩余

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6128 题意:给你n个数,问你有多少对i,j,满足i<j,并且1/(ai+aj)=1/ai+1/a ...