我已经尝试过这么多,但不幸的是我没有运气。我有一个应用程序,允许您选择一个COM端口及其波特率,然后将其连接到另一个COM端口(因此信号进入一个端口,而另一个端口)。我有一个保存功能,使其保存为XML格式。
我希望能够打开该保存文件,以便XML文件中的所有信息都填充datagridview,但我找不到办法。
(在我的应用程序中使用基本设置)我在谷歌浏览器中打开XML文件,它看起来像这样(布局不完美,但我可以稍后更改):
function customRegex(){
return function(myString,replacement,myValue){
var s = myString;
var rgx = new RegExp(replacement,"gi");
myString = myString.replace(rgx, myValue);
return myString;
}
}
var reg = customRegex();
console.log( reg("This is the worst!","worst","best"));
以下代码是我保存数据的方式。我只是希望能够基本上做到这一点,并将数据放回原来的位置。
<Root_Element>
<Output_Port Output_Baud="9600">COM104</Output_Port>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM3</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM1</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM6</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM5</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM4</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is On" Baud="9600" Extract="12345" Data="">COM100</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM101</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is On" Baud="9600" Extract="" Data="">COM102</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM103</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM104</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM105</Serial_Port_Name>
</Root_Element>
任何帮助都会很棒!提前谢谢!
答案 0 :(得分:0)
尝试使用DataSet/DataTable
。
此代码读取您的xml文件:
var ds = new DataSet();
ds.ReadXml("filename.xml");
现在DataTable
中有两个DataSet
。
让我们从第一个获得价值:
var outputBaud = ds.Tables[0].Rows[0]["Output_Baud"];
var outputPort = ds.Tables[0].Rows[0]["Output_Port_Text"];
接下来,从第二个DataGridView
填充DataTable
(注意!黑魔法!):
dataGridView.DataSource = ds.Tables[1];
简单,不是吗?
现在,您可以在DataGridView
中修改值。由于数据绑定,它们将存储在DataTable
。
保存数据也非常简单。
ds.Tables[0].Rows[0]["Output_Baud"] = outputBaud;
ds.Tables[0].Rows[0]["Output_Port_Text"] = outputPort;
ds.WriteXml("filename.xml");
你可以扔掉笨重的代码。