我使用以下代码将xml文件读取到c#:
中的datagridviewnewDataSet.ReadXml(filepath);
dataGridView3.DataSource = newDataSet;
dataGridView3.DataMember = "aaa";
我的xml文件如下所示:
<root>
<aaa>
<Param_1>1</Param_1>
<Param_1>2</Param_1>
<Param_1>3</Param_1>
</aaa>
</root>
我可以毫无问题地读取xml到数据集。然后我加了一些
属性到<Param>
节点,因此它变为
<Param_1 size="2">1</Param_1>
数据集无法显示任何xml数据,有谁知道原因?
此外,如果我将我的xml文件更改为:
<root>
<Data_1>
<Name>aaa</Name>
<Params>
<Param_1>1</Param_1>
<Param_1>2</Param_1>
<Param_1>3</Param_1>
</Params>
</Data_1>
</root>
是否仍然可以使用DataSet方法将它们读入数据网格视图,或者我必须使用像linq这样的东西?
如果必须,有人可以告诉我如何使用linq做到这一点吗?
答案 0 :(得分:2)
我建议您将数据读取到xml文档并使用XmlDataSource绑定到它,而不是DataSet。并验证结构是否正确绑定。查看您的评论(不是由John编辑,而是在您提问的评论中,没有/
符号应该在结束标记中:</Data_1>
。
或者将结构更改为您希望的任何结构,只要它适合您的绑定。之后,您可以阅读数据:
DataSet ds = new DataSet();
ds.ReadXml("XMLFile1.xml", XmlReadMode.InferSchema);
关于Linq:你可以从阅读Getting Started with LINQ in C#开始。但无论如何你不应该创建复杂的xml结构 - 使它变得复杂会为你提供很多工作来处理它。
答案 1 :(得分:0)
DataSet不是使用XML的通用机制。如果DataSet不会生成XML,则无法导入该XML。