2016-04-12 18 views
0

Ayarlarla bir XML dosyanız var. Tüm CollectionEntry düğümlerinin name ve value'larını okumak ve bunları bir DataGrid'e eklemek istiyorum.XML düğümlerini okuyarak datagrid dosyasına ekleyin

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; } 
} 

Ama nasıl okuyabilirim:

Ben iyi bir yol Listesini kullanmak ve XML dosyasının adını ve değerlerle doldurun ve sonra böyle DataGrid eklemek için olduğunu düşünüyorum belirli CollectionEntry değerleri? `XDocument türüdür ama variable` gibi kullanılır:

<?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> 

cevap

0

XML LINQ kullanarak bir hata alıyorum

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)); 
+0

kullanabilirsiniz: Bu XML dosyası – John

İlgili konular