如何在未知流类型的情况下读取xml中的streamdata

时间:2014-01-17 21:51:15

标签: c# xml

我正在尝试为一个似乎在XML文件中保存其dataSet的程序构建一个插件。当我将文件读回我的插件中的数据集时,我看到xml文件中的字段,其中一个是“StreamData”,然后有一长串随机字符:Bhl0bEVzdG ....等等。因为我没有原始程序的源代码,所以我不知道这是什么类型的对象我需要尝试将这些数据读入以从程序中重新创建漂亮/正常的dataTable。

这是在xml文件中读取的代码

DataSet dataSet = new DataSet();
dataSet.ReadXml(stream, XmlReadMode.InferSchema);

dataGridView1.DataSource = dataSet;
foreach (DataTable t in dataSet.Tables)
{
    dataGridView1.DataMember = t.TableName;
}

这使得一个表看起来像xml文件,但我想要一个看起来像制作xml文件的表的表,如果这是有意义的。

由于

1 个答案:

答案 0 :(得分:0)

尝试使用System.Xml.Linq来阅读和处理XML。

您可以将文件读入XDocument并访问它的元素如下:

XDocument doc = XDocument.Load(stream)

var allDescendants = d.Descendants("StreamData").ToArray();

XDocument获得所需的所有数据后,您可以手动将其放入DataTable

以下是有关System.Xml.LinqDataTables的更具体信息。

http://msdn.microsoft.com/en-us/library/system.xml.linq%28v=vs.110%29.aspx

http://msdn.microsoft.com/en-us/library/system.data.datatable%28v=vs.110%29.aspx

Linq非常有用,我发现它非常优雅地解决了许多问题。