批量更新带有命名空间的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(); ...
随机推荐
- Centos 6 FTP 配置
How to configure ftp server on centos 6 Posted krizna Centos FTP – File transfer protocol is used ...
- nodejs入门教程之http的get和request简介及应用
nodejs入门教程之http的get和request简介及应用 前言 上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块 ...
- 工具_HBuilder使用快捷方式
HBuilder常用快捷键大概共9类([4 13 3]文件.编辑.插入:[4 9 8]选择.跳转.查找:[1 1 6]运行.工具.视图) 1.文件(4) 新建 Ctrl + N 关闭 Ctrl + F ...
- hdu 1556(线段树之扫描线)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556 Color the ball Time Limit: 9000/3000 MS (Java/Ot ...
- arch中pacman的使用
Pacman 是archlinux 下的包管理软件.它将一个简单的二进制包格式和易用的构建系统结合了起来.不管软件包是来自官方的 Arch 库还是用户自己创建,Pacman 都能方便得管理. pacm ...
- python基础===理解Class的一道题
解题如下: from random import randint class Die(): def __init__(self,sides=6): self.sides = sides def rol ...
- An unhandled exception of type 'System.TypeInitializationException' occurred in System.ServiceModel.dll
异常“ An unhandled exception of type 'System.TypeInitializationException' occurred in System.ServiceMo ...
- Mac iphone 使用 如何修改apple 用户名 XXX的mac Mac 与iphone如何连接 传递文件 为iphone增加铃声 iphone铃声的制作---城
1.更改mac apple id Apple ID 即用户名称,您可以将其用于与 Apple 有关的所有操作.为某个 Apple 服务(如 iCloud 或 App Store)创建帐户时即创建了 A ...
- tornado write render redirect IP
write 用法( self.flush() ) render (跳转指定网页)用法 redirect(跳转指定路由)用法 self.request.remote_ip 显示用户 IP 地址 less ...
- 创建.dat文件(转载)
比较有用的东比较有用的东西 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的 ...