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. USACO Clumsy Cows

    洛谷 P3056 [USACO12NOV]笨牛Clumsy Cows 洛谷传送门 JDOJ 2323: USACO 2012 Nov Silver 1.Clumsy Cows JDOJ传送门 Desc ...

  2. Electron实现第一个应用 "hello world"

    一. 什么是Electron? 它和NW.js的区别是什么? Electron是GitHub开发的桌面应用开发框架,它支持使用HTML.CSS.JavaScript来构建跨平台的桌面应用. Elect ...

  3. q1096

    一,看题 1,大概是每个点都来一次BFS标记下应该就可以. 2,你可以想想队列为啥pop()是l++; 3,还是字符你得注意下. 4,x,y,m,n,行列你得搞清楚. 5,这棋盘的破东西.. 6,额, ...

  4. ESP8266 SDK开发: 开发环境搭建

    前言 这节安装下编程软件, 可以去官网下载, https://wiki.ai-thinker.com/ai_ide_install 也可以安装我提供的(我使用的为官方以前版本) 建议安装我提供的,有问 ...

  5. 回溯法 | n皇后问题

    今早上看了一篇英语阅读之后,莫名有些空虚寂寞冷.拿出算法书,研读回溯法.我觉得n皇后问题完全可以用暴力方式,即先对n个数进行全排列,得到所有结果的下标组合,问题规模为n!. 全排列花了比较久的时间才编 ...

  6. vue.config.js 配置 scss,less,sass全局配置 vuecli3

    module.exports = { /* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */ public ...

  7. python3 修改excel 单元格的值(xlsx)

    excel code #coding=utf- import os.path import os from openpyxl.reader.excel import load_workbook # e ...

  8. Linux 系统开机时间及当前时间

    最近一次系统开机时间:date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M ...

  9. Cut 命令截取不同空格的string

    eth0      Link encap:Ethernet  HWaddr 00:0C:29:16:79:98 例如这一串中间空格数量不一样cut 是无法截取字段的.所以我们需要把他变成有规律的. 这 ...

  10. 《Linux就该这么学》培训笔记_ch14_使用DHCP动态管理主机地址

    <Linux就该这么学>培训笔记_ch14_使用DHCP动态管理主机地址 文章最后会post上书本的笔记照片. 文章主要内容: 动态主机地址管理协议 部署dhcpd服务程序 自动管理IP地 ...