[英]how to give values from xml file to datagridviewtextbox in C#?
[英]How to copy values from XML file to variables in c#
我有一個 *.XMl 文件,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
- <!-- User settings
-->
- <Settings>
<Session_File>C:\programs\Notepad++Portable\help.html</Session_File>
<Training_catalogue>C:\Windows\Cursors\aero_ew.cur</Training_catalogue>
<Users_ID>C:\Windows\_default.pif</Users_ID>
<File_with_badge_ID>C:\Windows\PFRO.log</File_with_badge_ID>
<Session_Folder>C:\Program Files</Session_Folder>
<PDF_Folder>C:\Program Files\GRETECH\GomPlayer\logos</PDF_Folder>
</Settings>
我想把每個“路徑”放到一個變量中。 例如“String user_id = C:\\Windows_default.pif”我有以下代碼來讀取 XML 文件。
//Read values from xml file
XElement xelement = XElement.Load("settings.xml");
IEnumerable<XElement> employees = xelement.Elements();
// Read the entire XML
foreach (var employee in employees)
{
Maybe in this place I have to write some code
}
請幫我
在這種情況下,您可以使用Dictionary<string,string>
,其中鍵是元素名稱,值是路徑:
var settings = XDocument.Load("settings.xml").Root
.Elements()
.ToDictionary(x => x.Name, x => (string)x);
然后你可以通過它的元素名稱訪問每個路徑。例如: settings["Users_ID"]
將返回C:\\Windows\\_default.pif
如果這些是 XML 中的靜態字段,則可以使用 DataContractSerializer(或 XMLSerializer)將其序列化為類...
using System.Runtime.Serialization;
using System.IO;
(還需要添加對 System.Runtime.Serialization 的引用)
[DataContract]
public class Settings
{
[DataMember]
public string Session_File { get; set; }
[DataMember]
public string Training_catalogue { get; set; }
[DataMember]
public string Users_ID { get; set; }
[DataMember]
public string File_with_badge_ID { get; set; }
[DataMember]
public string Session_Folder { get; set; }
[DataMember]
public string PDF_Folder { get; set; }
public static Settings ReadSettings(string Filename)
{
using (var stream = new FileStream(Filename, FileMode.OpenOrCreate))
try
{
return new DataContractSerializer(typeof(Settings)).ReadObject(stream) as Settings;
}
catch { return new Settings(); }
}
public void Save(string Filename)
{
using (var stream = new FileStream(Filename, FileMode.Create, FileAccess.Write))
new DataContractSerializer(typeof(Settings)).WriteObject(stream, this);
}
public Settings()
{
//defaults
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.