string filePath = Form1.getProjectFilePath();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
//xmlDoc.Load(filePath);
using (System.IO.FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (System.IO.StreamReader sr = new StreamReader(fs, Encoding.GetEncoding()))
{
var strXml = sr.ReadToEnd();
xmlDoc.LoadXml(strXml);
}
}
protected void abcBankPayment(string no, string amount, string productName, string qcode)
{
var buildingName = productName.Split(':')[];
var bean = new ABCBankAccountBean();
DataContractJsonSerializer jsonSerial = new DataContractJsonSerializer(typeof(ABCBankAccountBean));
var result = File.ReadAllText(MapPath("~/Finance/ABCBankAccountMaping.json"), System.Text.Encoding.UTF8);
using (MemoryStream stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(result)))
{
bean = (ABCBankAccountBean)jsonSerial.ReadObject(stream);
}
Building entityBuilding = bean.buildingItems.Where(exp => exp.buildingNames.Contains(buildingName)).FirstOrDefault();
if (entityBuilding == null)
{
//楼盘没有农行支付配置
getMsgLabel().Text = string.Format("楼盘'{0}'不能使用农行接口支付", buildingName);
return;
}
}

string[] arrayXmlNodeName_01 = new string[]
{
"YHX_XC_H", "YHX_XC_H1", "YHX_XC_DH", "YHX_XC_NDJ","YHX_XC_H2", "YHX_XC_H3", "YHX_XC_H4",
"YHX_XC_W", "YHX_XC_W2", "YHX_XC_L1", "YHX_XC_L2", "YHX_XC_L3"
};

string[][] arrayXmlNodeName_02 = new string[][]
{
new string[] { "YHX_XC_SHB_MAT", "YHX_XC_SHB_T" },
new string[] { "YHX_XC_LB_MAT", "YHX_XC_LB_T" },
new string[] { "YHX_XC_BB_MAT", "YHX_XC_BB_T" },
new string[] { "YHX_XC_LGJB_MAT", "YHX_XC_LGJB_T" },
new string[] { "YHX_XC_LGDB_MAT", "YHX_XC_LGDB_T" },
new string[] { "YHX_XC_XHB_MAT", "YHX_XC_XHB_T" }
};

string filePath = Form1.getProjectFilePath();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
//xmlDoc.Load(filePath);
using (System.IO.FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
using (System.IO.StreamReader sr = new StreamReader(fs, Encoding.GetEncoding(936)))
{
var strXml = sr.ReadToEnd();
xmlDoc.LoadXml(strXml);
}
} var nodeRoot = xmlDoc.SelectSingleNode("/Root/xc");
nodeRoot.RemoveAll();
Action<string> action = delegate (string ele)
{
var nodeTemp = xmlDoc.CreateElement(ele);
Control control = this.Controls.Find(ele, true)[0];
if (control.GetType() == typeof(ComboBox))
{
nodeTemp.InnerText = (control as ComboBox).SelectedValue.ToString();
}
else
{
nodeTemp.InnerText = control.Text;
}
nodeRoot.AppendChild(nodeTemp);
};
Action<string[]> action2 = delegate (string[] ele)
{
Array.ForEach<string>(ele, action);
};
Array.ForEach<string>(arrayXmlNodeName_01, action);
Array.ForEach<string[]>(arrayXmlNodeName_02, action2);
xmlDoc.Save(filePath);
MessageBox.Show("保存成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);

  

XmlDocument.load 读文件报异常:文件正被其它线程使用,解决方法的更多相关文章

  1. 解压tar.gz文件报错gzip: stdin: not in gzip format解决方法

    解压tar.gz文件报错gzip: stdin: not in gzip format解决方法 在解压tar.gz文件的时候报错 1 2 3 4 5 [Sun@localhost Downloads] ...

  2. vs2015 系统找不到指定的文件(异常来自HRESULT:0x80070002)问题的解决方法

    vs2015 创建mvc项目时,弹出错误信息内容(系统找不到指定的文件(异常来自HRESULT:0x80070002)) 弹出窗体如下图所示: 导致整个原因是:未安装NuGet包 解决方法: 1)打开 ...

  3. MyEclipse打开JSP文件报"Failed to create the part's controls"解决方法汇总

    有时候,打开别人的开发环境中导过来的项目的JSP文件,会出现“Failed to create the part's controls”的错误! 解决的方法有: 方法1:关闭myeclipse的jsp ...

  4. 第一次打开pycharm运行python文件报错”No Python interpreter selected“问题的解决办法

    前面没有细讲,这里细述一下安装pycharm后,第一次打开pycharm运行python文件报错"No Python interpreter selected"问题的解决办法. 出 ...

  5. 转:导出csv文件数字会自动变科学计数法的解决方法

    导出csv文件数字会自动变科学计数法的解决方法   其实这个问题跟用什么语言导出csv文件没有关系.Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科 ...

  6. string.Format出现异常"输入的字符串格式有误"的解决方法

    string.Format出现异常"输入的字符串格式有误"的解决方法 今天在做项目时,碰到一个很奇怪的问题,我使用string.Format居然报“输入的字符串格式有误”的错误,我 ...

  7. Tomcat报异常:Too many open files 的解决之路

    http://www.linuxeye.com/Linux/2781.html Tomcat报 Jul 21, 2015 8:45:23 AM org.apache.tomcat.util.net.J ...

  8. Linux文件虚拟机系统只读Read-only file system的快速解决方法

    问题描述:上周公司的私有云(底层架构是Openstack+KVM,目前稳定性还不够好,开发团队在改进中)一个计算节点挂掉,之后恢复后发现这个计算节点的所有Linux系统都变成只读了,复制文件提示:Re ...

  9. .NET上传大文件时提示Maximum request length exceeded错误的解决方法

    使用IIS托管应用程序时,当我们需要上传大文件(4MB以上)时,应用程序会提示Maximum request length exceeded的错误信息.该错误信息的翻译:超过最大请求长度. 解决方法: ...

  10. Office 2010 打开文件后所有的格式成了时间的解决方法

    最新不知道什么原因,每一个 Excel 文件打开后,时需的数据都成了时间格式. 而且改都改不了,改了后第二次打开又成了这个样子. 最后找到解决方法. 如下动画,将 [$F400] 数据格式删除就可以. ...

随机推荐

  1. html2canvas@^1.0.0-rc.1

    这个版本的html2canvas是我在npm找到的,有严重问题,如截图后字体变小,解决方法就是官网找个min.js的版本,放到项目中引用就好 https://html2canvas.hertzen.c ...

  2. java GC jvm 内存分布 和新生代,老年代,永久代,(详细)

    如果大家想深入的了解JVM,可以读读周志明<深入理解Java虚拟机:JVM高级特性与最佳实践> 需要掌握的东西,包括以下内容.判断对象存活还是死亡的算法(引用计数算法.可达性分析算法).常 ...

  3. T4模板 简单使用

    原文:https://www.cnblogs.com/sanduo8899/p/3964563.html <#@ template debug="false" hostspe ...

  4. Vim编辑器点滴积累

    Vim编辑器点滴积累 vim tab键空格数量控制 参考链接 临时:进入VIM,执行: :set tabstop=4 永久:编辑用户目录下.vimrc文件,添加:set tabstop=4 vim 安 ...

  5. [RN] 可播放视频的播放器版本

    可播放视频的播放器版本 "react": "16.6.3", "react-native": "0.57.8", &qu ...

  6. 网络协议 13 - HTTPS 协议

    之前说了 HTTP 协议的各种问题,但是它还是陪伴着互联网.陪伴着我们走过了将近二十年的风风雨雨.现在有很多新的协议尝试去取代它,来解决性能.效率等问题,但它还还能靠着“多年的情分”活的滋润.然而,近 ...

  7. celery工作原理介绍

    在学习Celery之前,我先简单的去了解了一下什么是生产者消费者模式. 生产者消费者模式 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是 ...

  8. nRF51822 看门狗和OTA (无线升级功能)的尴尬笔记

    很久没有记笔记了.今天要记点东西,不然以后又忘记了. 随着时代的发展,现在的SDK已经是13.0了.蓝牙5.0也就来了.废话就少说了,记笔记吧. 两年前搞过nRF51822 的无线升级功能,那时候用的 ...

  9. 网卡监控脚本--nagios

    #!/usr/bin/python26#filename:check_traffic.py#the python script function  for monitoring network tra ...

  10. c语言之函数指针应用

    c语言之函数指针应用 1.函数指针与指针函数 在开始运用函数指针前,我们需要将两个概念即:函数指针与指针函数搞清楚. 函数指针,指明这个一个函数,但返回值为指针类型,语法格式为: 类型名* 函数名A( ...