[英]Reading XML nodes and add to datagrid
我有一個帶有設置的XML文件。 我想讀取所有CollectionEntry
節點的name
和value
,並將它們添加到DataGrid。
我認為一個好方法是使用一個List並用XML文件的名稱和值填充它,然后將其添加到DataGrid中,如下所示:
List<Buffer> buffers = new List<Buffer>();
buffers.Add(new Buffer(){bufferName="username_testuser1",bufferValue="testuser2"});
bufferGrid.DataSource = buffers;
public class Buffer
{
public string bufferName { get; set; }
public string bufferValue { get; set; }
}
但是,如何讀取特定的CollectionEntry
值? 這是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<Settings xmlns="Namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Category name="Commander">
<Category name="ManualTestExecution">
<Setting name="WindowLocation" legacyPath="Commander.GUI.ManualTestExecution.WindowLocation">336,263</Setting>
<Setting name="WindowSize" legacyPath="Commander.GUI.ManualTestExecution.WindowSize">732,451</Setting>
</Category>
</Category>
<Category name="Engine">
<Setting name="Key Delay" legacyPath="BaseSettings.keyDelay">1</Setting>
<Setting name="Wait Intermediate" legacyPath="BaseSettings.waitIntermediate">5000</Setting>
<Setting name="Report Successful Execution of" legacyPath="XML.OutputLogLevel">2</Setting>
<Collection name="Buffer" legacyPath="Buffer.Local">
<CollectionEntry name="username_testuser1">testuser2</CollectionEntry>
<CollectionEntry name="password_testuser1">!Welcome099</CollectionEntry>
<CollectionEntry name="username_testuser2">testuser2</CollectionEntry>
</Collection>
</Category>
</Settings>
使用LINQ to XML,您可以使用
XNamespace df = "Namespace";
List<Buffer> buffers = new List<Buffer>(from entry in XDocument.Load("yourFile.xml").Descendants(df + "CollectionEntry") select new Buffer( bufferName = (string)entry.Attribute("name"), bufferValue = (string)entry));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.