将XML文档转换为WPF中的表

时间:2012-04-27 10:12:09

标签: c# wpf xml

是否可以将XML文档转换为动态显示的表格。由于我的程序在执行期间生成XML,我需要以表格的形式显示xml文档的内容。截至目前,我正在使用文档中的xmlreader解析并将它们静态地放入数据网格中。有没有更好的方法呢?

1 个答案:

答案 0 :(得分: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();