Je lis une chaîne dans un Y a-t-il un moyen simple de résoudre ce problème? Ne devrait-il pas être capable de gérer UNICODE ou UTF-16? P> Toute suggestion serait très appréciée. Utilisation de C # & .NET 4 P> DataSet code> à l'aide de la méthode
lisexml code>. Lorsque j'essaie de renvoyer des caractères non valides dans l'erreur de chemin. Si je sauvegardez et ouvrez la chaîne dans IE en tant que fichier XML, il jette une erreur sur le codage
coding = "utf-16" code> si je suppose que c'est la cause du problème.
<?xml version="1.0" encoding="UTF-8" ?>
<iCall xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Rows>
<Row>
<Code />
<Title>Test Title</Title>
</Row>
</Rows>
</iCall>
4 Réponses :
Je pense que vous pouvez essayer d'utiliser ReadStartelement pour avancer vers le nœud suivant et lisez la table entière dans DataSet.
XmlTextReader r = new XmlTextReader(@"c:\b.xml"); r.MoveToContent(); r.ReadStartElement("iCall"); DataSet ds = new DataSet(); ds.ReadXml(r); this.dataGrid1.DataSource = ds;
DataSet.ReadxML (String) attend un chemin de fichier Pas em> un document XML. Il essaie donc d'analyser votre document XML sous forme de filepath et échoue Si vous n'avez que votre exécution XML, vous pouvez le faire comme suit: P> StringReader sr = new StringReader(xml);
dataSet.ReadXml(sr);
Ce code exemple corrigera le problème.
XmlDocument layoutXml = new XmlDocument(); layoutXml.Load(MyXmlPath); //file location StringReader sr = new StringReader(layoutXml.DocumentElement.OuterXml); ds.ReadXml(sr);
Il est préférable d'utiliser une ligne supplémentaire xmltextreader xtr = ... et passez xtr à la méthode lisexml.