2012-04-27 62 views
1

是否可以將XML文檔轉換爲動態顯示的表格。由於我的程序在執行期間生成XML,我需要以表格的形式顯示xml文檔的內容。截至目前,我通過文檔使用xmlreader解析並將它們靜態放置到數據網格中。有沒有更好的方法來做到這一點。?將XML文檔轉換爲WPF中的表格

+1

你是什麼意思「將它們靜態放入數據網格」?如果你把它放在代碼中,它是動態的!無論如何,看看'System.Windows.Data.XmlDataProvider'。 – 2012-04-27 10:31:38

回答

2

數據集對象有一個「ReadXml(字符串文件名)」方法。

例如XML products.xml:

<?xml version="1.0" encoding="utf-8"?> 
<Products> 
    <Product id="1"> 
    <Name>Product Name</Name> 
    </Product> 
    <Prodcut id="2"> 
    <Name>Another Product</Name> 
    </Product> 
</Products> 

C#代碼片段:

DataSet myXmlDataSet = new DataSet(); 
myXmlDataSet.ReadXml("products.xml"); 
DataTable productTable = myXmlDataSet("Product"); 

雖然這個作品,我通常喜歡讓我的XML到POCO的和填充使用業務的集合UI網格對象。如果數據源發生更改(將其移至SQL或其他數據源),則可以替換該數據訪問組件。 System.Xml.Linq中的XDocument對於執行此操作非常方便。

var xmlDoc = XDocument.Load("products.xml"); 
var productNodes = xmlDoc.Root.Elements("Product"); 
var prodList = productNodes.Select(prod => new Product() 
    { 
     id = int.Parse(prod.Attribute("id").Value), 
     Name = drug.Element("Name") 
    }) 
    .ToList();