从XmlDocument或String读取Xml到DataGrid的最佳方法是什么?
xml必须采用特定格式吗?
我是否必须使用A DataSet作为中间人?
我正在使用一个客户端,该客户端使用从我的一位同事开发的服务器发送的Xml,我可以让他更改Xml的格式以匹配DataGrid所需的格式。
答案 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);