批量更新带有命名空间的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");
批量更新带有命名空间的XML文件的多个节点值的更多相关文章
- 带有命名空间的xml解析,C#
前一段时间做花旗的接口,返回的xml格式是带有命名空间的,可是难倒了我,找了好久才找到解决办法,给大家分享下,少走弯路. 1,直接进入正题,先看一段带有命名空间的xml,这段xml大概的意思是,前面是 ...
- opencv局限:cv::FileStorage读取中,xml文件的第一层节点不能超过4个
今天测试发现一个问题,cv::FileStorage读取中,xml文件的第一层节点不能超过4个. <?xml version="1.0"?> <opencv_st ...
- php解析带有命名空间的xml
xml如果带有命名空间我们将如何解析,例如: <ns1:CreateBillResponse xmlns:ns1="http://neusoft.com" xmlns:xsd ...
- 利用XPath解析带有xmlns的XML文件
在.net中,编写读取xml 的程序中提示"未将对象引用设置到对象的实例",当时一看觉得有点奇怪.为什么在读取xml数据的时候也要实例化一个对象.google了才知道,xml文件中 ...
- 解决创建带有NameSpace的XML文件出现空白xmlns的问题
为了能够让用户自行部署ClickOnce应用程序,需要编写一个生成ClickOnce应用程序的ClickOnce专用安装程序setup.exe,而生成这个setup.exe的方法就是编写一个XML格式 ...
- Android attrs.xml文件中属性类型format值的格式
"reference" //引用 "color" //颜色 "boolean" //布尔值 "dimension" // ...
- python中用ElementTree.iterparse()读取xml文件中的多层节点
我在使用Python解析比较大型的xml文件时,为了提高效率,决定使用iterparse()方法,但是发现根据网上的例子:每次if event == 'end':之后elem.clear()或者是每次 ...
- 解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架自动封装参数的功能
程序结构:src文件夹下存放xml文件 该文件内容: <?xml version="1.0" encoding="UTF-8"?> <myst ...
- C#操作XML,如何获取指定节点值?
博客园提问,结合网友回答http://q.cnblogs.com/q/36082/ 打开是treelist树形显示xml所有节点,递归来实现 xmlDoc = new XmlDocument(); ...
随机推荐
- 在前端发起ajax遇到问题
1.请注意设置datatype的类型. 如下图:
- 大聊Python----json与pickle数据序列化
用于序列化的两个模块 ☆json,用于字符串和python数据类型间进行转换 ☆pickle,用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:dumps.du ...
- NOI2018游记&我的OI历程
day1 今天是报到日,坐着早上9点的飞机到了长沙,午饭时间到达雅礼洋湖. 宿舍还是一模一样,虽然是在女生宿舍. wifi信号还是一样的德行,刻意避开了宿舍内,只好把手机放在窗台上开热点. 饭菜还是如 ...
- Python学习笔记 - day12 - Python操作NoSQL
NoSQL(非关系型数据库) NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称.用于超大规模数据的存储.(例如 ...
- sk_buff结构
sk_buff结构用来描述已接收或者待发送的数据报文信息:skb在不同网络协议层之间传递,可被用于不同网络协议,如二层的mac或其他链路层协议,三层的ip,四层的tcp或者udp协议,其中某些成员变量 ...
- 对list对象进行排序
List<LjlSevOrdersVO> list = ljlSevOrdersService.findSevForOrders(ljlSevOrdersVO); //查出所有是自愿者的订 ...
- [ Python ] set集合及函数的使用
1. set类型 set 和 dict 类似,也是一组 key 的集合,但是不存储 value. 由于 key 不重复,所以,在 set 中, 没有重复的 key 集合是可变类型 (1)集合的创建 ...
- position:fixed部分版本的浏览器不支持
ie6-ie8浏览器不支持这个属性 .fixed{ position:fixed; /*对于火狐等其他浏览器需要设置的*/ top:700px; /*同上*/ ...
- 关于进度管理工具Gantt图
关于进度管理工具Gantt图 18.以下关于进度管理工具图的叙述中,不正确的是( D). A.能清晰地表达每个任务的开始时间.结束时间和持续时间 B.能清晰地表达任务之间的并行关系 C.不能清晰地确定 ...
- VMware Workstation虚拟机Ubuntu中实现与主机共享(复制和粘贴)
VMware Workstation中安装虚拟机Ubuntu后,开始都不能与主机实现共享,即相互之间能实现复制粘贴的功能.要解决问题,只需要安装VMvare tools后然后重启虚拟机Ubuntu即可 ...