1

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

4

1 回答 1

2

数据集对象有一个“ReadXml(string filename)”方法。

示例 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();
于 2012-04-30T16:07:44.390 回答