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