为什么Dataset可以读XML而DataTable不行 DataSet ds = new DataSet();ds.ReadXml(@"E:\list.xml");成功!DataTable dt = new DataTable();dt.ReadXml(@"E:\list.xml");失败!为什么!!? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 vs2005起,应该datatable可以序列化了, 所以应该也可以 1楼说得正确,2.0新增的我刚才试过了dataTable读取没有问题楼主检查下,你的xml格式文件是否正确,匹配有没有问题 DataTable dt = new DataTable(); dt.ReadXml("");没有问题的,VS2005通过 DataSet ds = new DataSet(); ds.ReadXml(this.textBox1.Text); this.dataGridView1.DataSource = ds.Tables[0]; XmlDocument xd = new XmlDocument(); xd.Load(this.textBox1.Text); foreach (XmlNode xn in xd.FirstChild.ChildNodes) { foreach (XmlNode xxn in xn.ChildNodes) { Clipboard.SetText(xxn.InnerText); } }参考下这段代码 DataTable dt = new DataTable();dt.ReadXml(@"D:\CodeCollect\CodeCollect\XMLFile1.xml");XML:<?xml version="1.0" encoding="utf-8"?><NewDataSet> <root> <name>小张</name> <age>23</age> <city>上海</city> </root> <root> <name>王宏</name> <age>35</age> <city>北京</city> </root></NewDataSet>报错:DataTable 不支持来自 XML 的架构推断。 <?xml version="1.0" encoding="utf-8"?> <NewDataSet> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="root" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" minOccurs="0" /> <xs:element name="age" type="xs:string" minOccurs="0" /> <xs:element name="city" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <root> <name>小张 </name> <age>23 </age> <city>上海 </city> </root> <root> <name>王宏 </name> <age>35 </age> <city>北京 </city> </root> </NewDataSet> 改成这样的话你读取试一下。 楼上的应该可以的Table读取的XML一定要有Scheme 如何正确的取得文件的路径,如何正确的取得文件的路径 飞行棋程序问题 [求助]C#窗体登陆 请问在C#里面怎样实现逻辑坐标原点的设置,将坐标变成数学里的直角坐标系....就像MFC里面的???帮忙 select count(*)的问题 如何做那种网络广播,形式就象上网时候时常弹出的信使服务的弹出筐???? 这样的电脑能不能运行vs.net? 我有一个很急的问题! dataGrid问题 如何写datatime型SQL语句 关于重写TabControl和TabPage问题 企业审批模块的实现, 大家来讨论
我刚才试过了dataTable读取没有问题
楼主检查下,你的xml格式文件是否正确,匹配有没有问题
DataTable dt = new DataTable();
dt.ReadXml("");
没有问题的,VS2005通过
DataSet ds = new DataSet(); ds.ReadXml(this.textBox1.Text); this.dataGridView1.DataSource = ds.Tables[0]; XmlDocument xd = new XmlDocument(); xd.Load(this.textBox1.Text); foreach (XmlNode xn in xd.FirstChild.ChildNodes)
{
foreach (XmlNode xxn in xn.ChildNodes)
{
Clipboard.SetText(xxn.InnerText);
}
}参考下这段代码
dt.ReadXml(@"D:\CodeCollect\CodeCollect\XMLFile1.xml");XML:
<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
<root>
<name>小张</name>
<age>23</age>
<city>上海</city>
</root>
<root>
<name>王宏</name>
<age>35</age>
<city>北京</city>
</root>
</NewDataSet>
报错:
DataTable 不支持来自 XML 的架构推断。
<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="root" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="age" type="xs:string" minOccurs="0" />
<xs:element name="city" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<root>
<name>小张 </name>
<age>23 </age>
<city>上海 </city>
</root>
<root>
<name>王宏 </name>
<age>35 </age>
<city>北京 </city>
</root>
</NewDataSet> 改成这样的话你读取试一下。
Table读取的XML一定要有Scheme