<?xml version="1.0" encoding="utf-8"?>
<PHP_Adapter>
<Adapter>
<ID>11</ID>
<Provider>22</Provider>
<Connectstring>33</Connectstring>
</Adapter>
</PHP_Adapter>
C'est quoi mon fichier XML?
bool CheckAdapterExist(string aid)
{
DataTable dt = new DataTable();
dt.ReadXml(axml);
MessageBox.Show(dt.Rows[0]["ID"].ToString());
return true;
}
Essayez plutôt d'utiliser un Dataset
DataSet ds = new DataSet();
ds.ReadXml(@"d:\test.xml");
MessageBox.Show(ds.Tables[0].Rows[0]["ID"].ToString());
Trouvé à
DataTable.ReadXml (nomfichier) renvoie une erreur. Pourquoi?
Si vous lisez un fichier XML
à partir de DataTable.WriteXml
, veillez à inclure un XmlWriteMode.WriteSchema
.
Exemple:
Table.WriteXml(DataFilePath, XmlWriteMode.WriteSchema);
Cela marche
string XML = @"
<MyTable>
<MyRecord>
<Col_1>test</Col_1>
<Col_2>1234</Col_2>
</MyRecord>
<MyRecord>
<Col_1>Record 2</Col_1>
<Col_2>2</Col_2>
</MyRecord>
</MyTable>
";
DataSet DS = new DataSet();
DS.ReadXml(new StringReader(XML));
DataTable DT=DS.Tables[0];
Si vous écrivez la table, vous pouvez résoudre ce problème en écrivant le schéma en même temps que la table. Voir: http://msdn.Microsoft.com/en-us/library/ms135456.aspx
Essayez ceci, cela fonctionnera:
System.Xml.XmlTextReader reader =
new System.Xml.XmlTextReader(@"C:\Users\Mayank\Documents\Projects\XMLTEST\XMLTEST\XMLFile1.xml");
DataSet newTable = new DataSet();
newTable.ReadXml(reader);
DataTable _dt=newTable.Tables[0];
OK, c'est un "Moi aussi!" répondez, cependant aucune des réponses ci-dessus n’aborde le fond de la question.
Pour gérer correctement le problème, laissez d’abord le DataTable déduire le schéma à partir du xml en appelant la méthodeReadXmlSchema, c.-à-d.
bool CheckAdapterExist(string aid)
{
DataTable dt = new DataTable();
dt.ReadXmlSchema(axml);
dt.ReadXml(axml);
MessageBox.Show(dt.Rows[0]["ID"].ToString());
return true;
}
De cette façon, le schéma est déduit du XML que vous essayez de charger et aucune erreur n'est renvoyée!