我尝试了不同的东西?
第一次尝试:这里我有这个错误"根级别的数据无效。第 1 行,位置 1。
StringReader StringStream = new StringReader(strFullPath);
DataSet ds = new DataSet();
ds.ReadXml(StringStream);
第二次尝试:
using (StreamReader mySR = new StreamReader(strFullPath, Encoding.GetEncoding("iso-8859-1") ))
{
XmlDocument lgnXml = new XmlDocument();
lgnXml.Load(mySR); This line has no errors, Only to test....
lrs1.ReadXml(mySR,XmlReadMode.ReadSchema); But in this line I have the error "Root element is missing."
}
这是xml(结构)的第一部分
<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="Table" msdata:UseCurrentLocale="true" msdata:PageSize="0" msdata:CurrentPosition="0" msdata:ConnectionString="" msdata:Sort="" msdata:LoadSchemaOnly="False" msdata:Filter="" msdata:AbsolutePosition="1" msdata:SqlQuery="" msdata:AbsolutePage="0" msdata:Disconnected="False">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="LanguageID" type="xs:int" minOccurs="0" />
<xs:element name="Compania" type="xs:string" minOccurs="0" />
<xs:element name="Facilidad" type="xs:string" minOccurs="0" />
<xs:element name="Cuenta" type="xs:string" minOccurs="0" />
<xs:element name="Numero" type="xs:string" minOccurs="0" />
和数据
<Table>
<LanguageID>2</LanguageID>
<Compania>Company</Compania>
<Facilidad>Facility</Facilidad>
<Cuenta>Account</Cuenta>
<Numero>Number</Numero>
<Nombre>Name</Nombre>
还有更多很多领域...
谢谢何塞
只有当你把XML放在StringReader构造函数中时,你的第一次尝试才有效:
StringReader StringStream = new StringReader(@"<Table>
<LanguageID>2</LanguageID>
<Compania>Company</Compania>
<Facilidad>Facility</Facilidad>
<Cuenta>Account</Cuenta>
<Numero>Number</Numero>
<Nombre>Name</Nombre>
</Table>");
DataSet ds = new DataSet();
ds.ReadXml(StringStream);
ds.Dump(); // LinqPad testcase, shows loaded dataset
如果您遗漏测试线,您的第二个样品应该可以工作
lgnXml.Load(mySR);
因为那行将读取流直到最后。然后,该方法lrs1.ReadXml(
没有更多的字符要处理,因此会出现错误。
尝试查看 Xml 内容(未测试):
using (StreamReader mySR = new StreamReader(strFullPath, Encoding.GetEncoding("iso-8859-1") )) {
XmlDocument lgnXml = new XmlDocument();
lgnXml.Load(mySR);//This line has no errors, Only to test....
while ((line = mySR.ReadLine()) != null)
{
Console.WriteLine(line);//"Debug"
}
}
很可能您的 xml 没有出现,或者被截断了。
注意:在您的 xml 中有 <Table>
,但没有</Table>
。有<NewDataSet>
,但没有</NewDataSet>