如何从c#中的DATASET对象读取xml数据

时间:2011-09-28 13:34:07

标签: c# xml dataset

我刚刚使用此代码从XML文件中读取xml数据。它成功从文件中读取数据。我只想知道如何从xml数据集中读取SelectSingleNode数据。

public DataSet ds =new DataSet();
public FileStream stream = null;

stream = new FileStream(schdlpath, FileMode.Open);
ds.ReadXml(stream);

//after this even if i delete the xml file it won't hamper the appliaction.
stream.Close();

//this way I can print all the data..
Console.WriteLine(ds.GetXml());

我想要的只是阅读数据 像这样

public XmlDocument document = new XmlDocument();
XmlNode ht = document.DocumentElement.SelectSingleNode("/Schedule/AudioVedioPlayer/Height");

实际上我想读取xml数据并将其存储到变量中。

2 个答案:

答案 0 :(得分:1)

public XmlDocument document = new XmlDocument();
document.LoadXml(ds.GetXml());
XmlNode ht = document.DocumentElement.SelectSingleNode("/Schedule/AudioVedioPlayer/Height");

答案 1 :(得分:0)

您可以将数据集中的xml写入流中,然后使用该流将其读入XmlDocument对象。从那里,您可以使用DOM进行导航。

现在,您是否尝试将一部分数据(如XML)存储到变量中?或者你在寻找身高值?如果是前者,我的计划没有问题。如果后者,我认为,通过查看你的XPath语句(SelectSingleNode())你有以下内容:

数据集:时间表 表:AudioVedioPlayer 财产:高度

如果我对您的设置是正确的,那么您可以通过向下钻取到DataSet轻松获得所需的值。

public DataSet ds =new DataSet(); 
public FileStream stream = null;
stream = new FileStream(schdlpath, FileMode.Open); 
ds.ReadXml(stream);

然后你可以进入桌子:

ScheduleTable table = ds.Schedule;

获取值

int height = table.Height;

或者你可以快捷方式

int height = ds.Schedule.Height;

除非您想要整个XML部分,否则没有理由获取XML。