在C#中将Xml读入数据网格

时间:2009-03-02 11:21:59

标签: c# xml datagrid

从XmlDocument或String读取Xml到DataGrid的最佳方法是什么?

xml必须采用特定格式吗?

我是否必须使用A DataSet作为中间人?

我正在使用一个客户端,该客户端使用从我的一位同事开发的服务器发送的Xml,我可以让他更改Xml的格式以匹配DataGrid所需的格式。

4 个答案:

答案 0 :(得分:2)

这取决于您运行的.NET版本。如果你可以使用Linq2Xml那么很容易。只需创建一个XDocument并选择子节点作为匿名类型的列表。

如果您不能使用Linq2Xml,那么您还有其他一些选择。使用DataSet是一个,这可以很好地工作,但它取决于您收到的xml。另一个选项是创建一个类,该类描述您将从xml读取的实体并手动逐步执行xml节点。第三种选择是使用Xml序列化并将xml反序列化为对象列表。只要您有为其设置的类,这可以很好地工作。

最简单的选择是创建XDocument或按照建议创建DataSet。

答案 1 :(得分:2)

显然你的XML需要有效:)

之后,定义数据集,定义数据网格。使用数据集上的readXML方法用XML填充数据集,使用dataBind完成,你就可以了。

DataSet myDataSet = new DataSet();
myDataSet .ReadXml(myXMLString);
myDataGrid.DataSource = myDataSet ; 
myDataGrid.DataBind(); 

答案 2 :(得分:0)

您可以简单地使用XmlDatasource对象作为网格的数据源。这允许您设置文件和XPath,以便选择作为数据源的XML。然后,您可以使用<%#XPath =“blah”%>如果你愿意,可以明确地写出你的数据。

答案 3 :(得分:0)

我们有一个部分答案可以将数据导入数据集,但它会将其作为一组带有关系链接的表读取。

        DataSet ds = new DataSet();
        XmlTextReader xmlreader = new XmlTextReader(xmlSource, XmlNodeType.Document, null);
        ds.ReadXml(xmlreader);